我有一个Eclipse插件项目,它依赖于我在Eclipse工作区中的其他项目。在“Java Build Path”下添加项目依赖项后 - > “项目”选项卡,并在“订单和导出”中选择项目,我得到一个java.lang.NoClassDefFoundError。
我假设其他项目未正确包含在插件中。有谁知道如何解决这个问题?
谢谢, 詹姆斯
答案 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");
在最坏的情况下可以考虑这一点。 我有这样的经历,因此有些人认为它有用。