我正在开发一个基于eclipse的RCP项目。它一直很好,但最近我想我会升级它以使用新的eclipse版本(3.2 - > 3.5)。
经过一些麻烦,它在新平台上运行。然后我做了一些事情。不知道是什么。最终的结果是,当我的一个插件(A)尝试访问其中一个依赖插件(B)(也是我的一个插件)中的类时,我现在得到一个类路径错误。
据我所知,插件A在其'依赖列表中有插件B,编译器没有显示错误。为了测试,我用一个类创建了一个新的插件C并从插件A访问了该类。这很好。
有没有人有任何提示来解决此类问题?要检查的设置清单?我一直在努力奋斗几个小时,无处可去!特别令人沮丧的是,直到我改变了一些东西才开始工作!
由于
更新
我还应该说项目很旧并且使用plugin.xml而不是清单。这可能是个问题吗?有没有办法升级?
答案 0 :(得分:3)
一些想法:
我希望,有些东西有助于这些。
答案 1 :(得分:2)
您可以在运行配置中尝试以下操作:
每次遇到一些奇怪的 ClassNotFound 错误时,这都会对我有所帮助。
答案 2 :(得分:1)
如果我理解正确你没有编译器错误,但是当你运行时,你会发现类找不到异常?您可以尝试 PDE工具>从项目的上下文菜单中更新Classpath ,看看你是否在MANIFEST.MF文件之外声明了任何依赖项,这将导致编译在运行时失败的代码。
答案 3 :(得分:1)
我很久以前就为RCP开发了,但是如果我没有错,那么从3.4或3.5开始你必须在插件中声明哪些包/类是为依赖插件导出的,哪些不是。 这与在包中使用“内部”来标记未导出的包的旧约定不同。
由于您拥有来自非常旧版eclipse的plugin.xml,因此可能是问题所在,因为Eclipse RCP 3.2中没有强制执行从一个插件到另一个插件的导出资源。
答案 4 :(得分:0)
还有一个补充,希望它有所帮助。 打开plugin.xml,选中“build”选项卡,查看如何配置“二进制构建”。它会影响编译和导出的文件。 请参阅此处的二进制构建:http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Feditors%2Fmanifest_editor%2Fbuild.htm