3

我正在开发一个基于 Eclipse 的 RCP 项目。它一直运行良好,但最近我想我会升级它以使用新的 Eclipse 版本(3.2 -> 3.5)。

经过一番麻烦,它在新平台上运行。然后我做了一些事情。不知道是什么。最终结果是,当我的一个插件 (A) 尝试访问依赖插件 (B) 之一(也是我的一个)中的一个类时,我现在遇到了类路径错误。

据我所知,插件 A 在其依赖列表中有插件 B,编译器没有显示任何错误。为了测试,我创建了一个带有一个类的新插件 C,并从插件 A 访问了该类。效果很好。

有没有人有任何解决此类问题的提示?要检查的设置清单?我已经为此苦苦挣扎了几个小时,却一无所获!特别令人沮丧,因为它一直在工作,直到我改变了一些东西!

谢谢

更新

我还应该说该项目很旧,并且使用的是 plugin.xml 而不是清单。这会是个问题吗?有没有办法升级?

4

5 回答 5

3

Some ideas:

  • Clean-and-build every project (maybe after a restart of Eclipse)
  • Check, whether the required packages are also exported
  • Check the Error log, maybe there is some unloadable plug-in, etc.
  • Check the Run configuration, whether every required plug-in is present there
  • If the problem does not happen in a Runtime workbench, but in an Exported RCP app, then check whether you compile the project with the same settings during export than in Eclipse

I hope, something helps about these.

于 2010-06-18T11:17:46.933 回答
2

您可以在运行配置中尝试以下操作:

  1. Main选项卡中,选中Workspace Data下的Clear ( workspace )
  2. 在“配置”选项卡中,在“配置区域”下启动之前检查清除配置区域

每当我遇到一些奇怪的ClassNotFound错误时,这都会对我有所帮助。

于 2012-04-29T10:40:00.217 回答
1

我很久以前为 RCP 开发过,但如果我没记错的话,从 3.4 或 3.5 开始,您必须在插件配置中声明哪些包/类是为依赖插件导出的,哪些不是。这与在包中使用“内部”来标记非导出包的旧约定不同。

由于您有来自非常旧版本的 eclipse 的 plugin.xml,这可能是问题所在,因为在 Eclipse RCP 3.2 中没有强制从一个插件导出资源到另一个插件。

于 2010-07-28T14:09:06.007 回答
1

如果我对您的理解正确,您没有编译器错误,但是当您运行时,您得到类未找到异常?您可以尝试从项目的上下文菜单中尝试PDE 工具 > 更新类路径,以查看您是否在 MANIFEST.MF 文件之外声明了任何依赖项,这将导致编译代码在运行时失败。

于 2010-06-18T21:47:53.440 回答
0

再补充一个,希望对你有帮助。打开 plugin.xml,检查“构建”选项卡,查看“二进制构建”是如何配置的。它会影响将编译和导出的文件。在此处查看二进制构建:http: //help.eclipse.org/indigo/index.jsp?topic= %2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Feditors%2Fmanifest_editor%2Fbuild.htm

于 2014-03-08T14:15:56.740 回答