3

我已经在 eclipse juno 中构建了一个 eclipse 功能项目,当我从 IDE 启动程序时,一切都很好,控制台中没有错误。

当我导出它运行的产品时,它不显示我在 Application.e4xmi 文件中创建的部分的内容(只有灰色背景)。当我检查导出文件夹中的配置文件夹时,有一个包含以下错误的日志文件:

!ENTRY org.eclipse.e4.ui.workbench 4 0 2012-07-19 19:22:13.859
MESSAGE Unable to load class 'be.yt.diepvriezer.ui.handlers.ExitHandler' from bundle '2'

!ENTRY org.eclipse.e4.ui.workbench 4 0 2012-07-19 19:22:13.859 !MESSAGE 无法从捆绑包 '2' 加载类 'be.yt.diepvriezer.ui.handlers.ExitHandler' !堆栈 0 java.lang.ClassNotFoundException: be.yt.diepvriezer.ui.handlers.ExitHandler at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501) at org.eclipse.osgi.internal.loader.BundleLoader .findClass(BundleLoader.java:421) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412) 在 org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107 ) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) .....

对于我在应用程序模型中创建的每个处理程序和部件,依此类推。

我检查了 build.properties 和清单文件,一切都在那里。

有人可以指出我正确的方向如何解决这个问题吗?

4

2 回答 2

3

有时您需要使用“-clean”启动应用程序,或定义“osgi.clean=true”以确保清除缓存的依赖项。在干净的工作区中启动将具有相同的效果(无缓存值):

“OSGi 框架和 Eclipse 运行时使用的任何缓存数据都将被清除干净。这将清除用于存储捆绑依赖解析和 Eclipse 扩展注册表数据的缓存。使用此选项将强制 Eclipse 重新初始化这些缓存。”

更多信息在这里

于 2012-08-20T17:01:33.380 回答
0

没有解决方案,只是需要检查:

当您查看plugins/导出产品的子目录时,它是否包含您的插件be.yt.diepvriezer.ui.handlers.ExitHandler?如果没有,则需要将该插件添加到产品中。当您从 IDE 中启动 RCP 产品时,通常会包含工作区中的所有插件,但是当您导出产品时,您确实需要列出您真正想要包含在*.product文件中的所有插件(直接或通过*.features)

当您解压缩该插件 jar 文件时,...ExitHandler该类真的在那里吗?如果不是,则产品导出失败。

Application.e4xmi那是指您..ExitHandler在与代码相同的插件中吗?如果不是,则..ExitHandler包含Application.e4xmi.

于 2012-07-20T00:25:09.110 回答