Eclipse插件项目与其他项目依赖项

时间:2010-05-19 21:49:46

标签: java eclipse eclipse-plugin dependencies

我有一个Eclipse插件项目,它依赖于我在Eclipse工作区中的其他项目。在“Java Build Path”下添加项目依赖项后 - > “项目”选项卡,并在“订单和导出”中选择项目,我得到一个java.lang.NoClassDefFoundError。

我假设其他项目未正确包含在插件中。有谁知道如何解决这个问题?

谢谢, 詹姆斯

2 个答案:

答案 0 :(得分:13)

Eclipse插件项目以不同于常规Java项目的方式管理依赖项。

我假设您要使用.class文件添加包。

在Eclipse插件项目中定义库文件夹。将任何外部类和/或jar复制到库文件夹。

打开META-INF目录下的MANIFEST.MF文件。你会看到一个格式化的编辑器,底部有8个标签。

单击“运行时”选项卡。将库文件夹中的外部类和/或jar添加到Classpath。这也将这些外部类和/或jar添加到项目的Java Build Path中。

单击“依赖关系”选项卡,然后在“导入的包”对话框中添加其他Java项目。您必须选中标记为“显示未导出的包”的复选框。如果您的其他Java项目是Eclipse插件,请将它们添加到Required Plug-ins下。

答案 1 :(得分:0)

如果您无法将依赖项目复制到插件项目中,并且您确定要在其中安装插件的目标eclipse中存在依赖项目,那么您可以使用 Runtime.exec()运行要运行的Java类或ProcessBuilder类运行该类。

像这样:

// To compile
Process p = Runtime.getRuntime().exec("javac yourclass.java"); 
// To execute
Process p2 = Runtime.getRuntime().exec("java yourclass");

在最坏的情况下可以考虑这一点。 我有这样的经历,因此有些人认为它有用。