【问题标题】:Eclipse Plugin project with other project dependencies具有其他项目依赖项的 Eclipse 插件项目
【发布时间】:2011-02-21 14:50:42
【问题描述】:

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

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

谢谢, 詹姆斯

【问题讨论】:

    标签: java eclipse eclipse-plugin dependencies


    【解决方案1】:

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

    像这样:

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

    这可能被认为是最坏的情况。 我有过这样的经历,因此认为有些人可能会觉得它很有用。

    【讨论】:

      【解决方案2】:

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

      我假设您正在添加带有 .class 文件的包。

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

      打开 META-INF 目录下的 MANIFEST.MF 文件。您会看到一个底部有 8 个选项卡的格式化编辑器。

      单击运行时选项卡。将 library 文件夹中的外部类和/或 jar 添加到 Classpath。这也会将这些外部类和/或 jar 添加到项目的 Java 构建路径中。

      单击 Dependencies 选项卡,然后在 Imported Packages 对话框中添加其他 Java 项目。您必须选中标有“显示未导出的包”的框。如果您的其他 Java 项目是 Eclipse 插件,请将它们添加到所需插件下。

      【讨论】:

      • 我尝试在“导入的包”部分添加包,但在“包选择”对话框的其他项目中找不到包。在此之前我需要做些什么吗?
      • 抱歉,我已经有一段时间没有创建新的 Eclipse 插件项目了。我已经用更多说明更新了我的答案。
      • 吉尔伯特:你能澄清一下你的指示吗?我通过 Project -> Java Build Path -> Libraries -> Add Class 文件夹添加了二进制文件,然后在插件的 Dependencies 选项卡上导入了包。现在,我在 Manifest.MF 文件中导入的包出现“没有可用的包导出包 'x'”错误。我错过了什么吗?
      • @Todd:你在我换电脑的那天抓住了我。我应该在另一天左右让我的 Eclipse 工作空间正常工作。听起来你所做的应该奏效。
      • @Gilbert:感谢您的快速回复。似乎您无法将工作区中另一个项目的文件夹添加到插件的类路径(使用运行时选项卡),因为对话框植根于插件的项目文件夹中。在相关说明中,“添加外部类”到类路径是什么意思?我将其阅读为:将另一个项目的 bin 输出文件夹添加到类路径中。不过,这种解释可能只是一厢情愿。我正在使用 Eclipse Helios SR1。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-13
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 2010-12-14
      • 2014-05-05
      相关资源
      最近更新 更多