java - 插件开发错误

标签 java eclipse plugins

我正在学习 Eclipse 中的插件开发,并决定遵循 Vogella 上的教程 ( http://www.vogella.com/tutorials/EclipsePlugIn/article.html#top ) 但是,当我右键单击项目并选择“作为 Eclipse 应用程序运行”(教程中的 4.2)时,我的控制台中就会出现错误。

这是错误:

!SESSION 2014-11-19 10:58:22.636 -----------------------------------------------
eclipse.buildId=4.4.0.I20140606-1215
java.version=1.7.0_45
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_NZ
Framework arguments:  -product org.eclipse.platform.ide
Command-line arguments:  -product org.eclipse.platform.ide -data \\engad.foe.auckland.ac.nz\engdfs\Home\dgop507\workspace/../runtime-EclipseApplication -dev file://engad.foe.auckland.ac.nz/engdfs/Home/dgop507/workspace/.metadata/.plugins/org.eclipse.pde.core/Eclipse Application/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog

!ENTRY org.eclipse.jface 4 0 2014-11-19 10:58:36.043
!MESSAGE /icons/sample.gif
!STACK 0
java.io.FileNotFoundException: /icons/sample.gif
    at org.eclipse.osgi.storage.url.bundleentry.Handler.findBundleEntry(Handler.java:37)
    at org.eclipse.osgi.storage.url.BundleResourceHandler.openConnection(BundleResourceHandler.java:169)
    at java.net.URL.openConnection(URL.java:971)
    at org.eclipse.core.internal.boot.PlatformURLConnection.connect(PlatformURLConnection.java:110)
    at org.eclipse.core.internal.boot.PlatformURLConnection.getURLAsLocal(PlatformURLConnection.java:238)
    at org.eclipse.core.internal.runtime.PlatformURLConverter.toFileURL(PlatformURLConverter.java:36)
    at org.eclipse.core.runtime.FileLocator.toFileURL(FileLocator.java:206)
    at org.eclipse.jface.resource.URLImageDescriptor.getFilePath(URLImageDescriptor.java:141)
    at org.eclipse.jface.resource.URLImageDescriptor.createImage(URLImageDescriptor.java:162)
    at org.eclipse.jface.resource.ImageDescriptor.createResource(ImageDescriptor.java:167)
    at org.eclipse.jface.resource.DeviceResourceManager.allocate(DeviceResourceManager.java:58)
    at org.eclipse.jface.resource.AbstractResourceManager.create(AbstractResourceManager.java:89)
    at org.eclipse.jface.resource.LocalResourceManager.allocate(LocalResourceManager.java:85)
    at org.eclipse.jface.resource.AbstractResourceManager.create(AbstractResourceManager.java:89)
    at org.eclipse.jface.resource.ResourceManager.createImage(ResourceManager.java:172)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.getImage(HandledContributionItem.java:580)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.updateIcons(HandledContributionItem.java:553)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.update(HandledContributionItem.java:440)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.fill(HandledContributionItem.java:376)
    at org.eclipse.jface.action.ToolBarManager.update(ToolBarManager.java:365)
    at org.eclipse.e4.ui.workbench.renderers.swt.ToolBarManagerRenderer$3.handleEvent(ToolBarManagerRenderer.java:205)
    at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40)
    at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:187)
    at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:156)
    at org.eclipse.swt.widgets.Display.syncExec(Display.java:4734)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:218)
    at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36)
    at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)
    at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
    at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
    at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
    at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
    at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
    at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:81)
    at 

当我从 build.properties 中删除 icon= "icons/sample.gif"时,出现以下错误:

java.io.IOException: Unable to resolve plug-in "platform:/plugin/org.eclipse.mylyn.tasks.ui/icons/eview16/task-list.gif".
    at org.eclipse.core.internal.runtime.PlatformURLPluginConnection.parse(PlatformURLPluginConnection.java:64)
    at org.eclipse.core.internal.runtime.PlatformURLPluginConnection.resolve(PlatformURLPluginConnection.java:75)
    at org.eclipse.core.internal.boot.PlatformURLHandler.openConnection(PlatformURLHandler.java:67)
    at org.eclipse.osgi.internal.url.URLStreamHandlerProxy.openConnection(URLStreamHandlerProxy.java:114)
    at java.net.URL.openConnection(URL.java:971)
    at org.eclipse.core.internal.runtime.PlatformURLConverter.toFileURL(PlatformURLConverter.java:33)
    at org.eclipse.core.runtime.FileLocator.toFileURL(FileLocator.java:206)
    at org.eclipse.jface.resource.URLImageDescriptor.getFilePath(URLImageDescriptor.java:141)
    at org.eclipse.jface.resource.URLImageDescriptor.createImage(URLImageDescriptor.java:162)
    at org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:230)
    at org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:208)
    at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.getImageFromURI(SWTPartRenderer.java:221)
    at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.getImage(SWTPartRenderer.java:233)
    at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.createTab(StackRenderer.java:829)
    at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.processContents(LazyStackRenderer.java:134)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
    at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
    at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
    at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
    at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)

I'm not sure if this is to do with my configuration/workspace settings. Any help would be much appreciated.

最佳答案

从你的错误开始:

java.io.FileNotFoundException: /icons/sample.gif

您的插件找不到图标目录或sample.gif 文件。

确保您的图标目录位于插件类路径中。

关于java - 插件开发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27004988/

相关文章:

java - 动态地从另一个 XML 文件填充 XML 数据 (Java)

java - JSP/Servlet 的 NullPointerException

C++ "Hello World.exe"崩溃 - 在命令提示符中使用时为 "Hello World.exe has stopped working."

Eclipse 编辑器让我抓狂 - 将编辑器 Pane 恢复为全宽

java - 找不到 Hibernate 异常 hibernate.cfg.xml

jquery - 滑动选项卡 Jquery 插件 - 如何禁用鼠标滚轮功能?

java - JPA - 是否可以将结果作为 @MappedSuperclass 的实例获得?

java - 如何将 HttpSession 从 WildFly 外部化到 Redis? (不包括 Spring session )

javascript - 在 JavaScript 中动态创建私有(private)方法

python - 如何在 yapsy 插件中定义类别?