【问题标题】:java.lang.NoClassDefFoundError when loading a class in a second project在第二个项目中加载类时出现 java.lang.NoClassDefFoundError
【发布时间】:2011-08-26 19:01:40
【问题描述】:

我有一个 Eclipse RCP 插件项目,它可以在所有代码都在一个项目中时工作。有 3 个包,我想在另一个 RCP 插件中使用其中一个包。因此,我决定将此包移动到第二个项目中,该项目可以是两个 RCP 工作区的一部分。我将第二个项目包含在“Java build Path”->“Projects”中,并且在第二个项目的“Order and Export”中有一个“-”(它不允许我更改它)

在调试插件时,它会在第二个项目中的一个类上给出“java.lang.NoClassDefFoundError”。我无法弄清楚如何将这两个项目连接在一起。能否请其他人指教。

【问题讨论】:

    标签: eclipse configuration project


    【解决方案1】:

    我已经设法解决了连接两个项目的问题。

    除了Andy的两点外:(1)在第二个项目的manifest.mf中添加第一个项目的依赖项-> Dependencies -- 在“Required plugins”和“Imported packages”下都添加对第一个项目的引用(2) 在启动器的“添加所需插件”部分检查项目...您必须从第一个项目中导出必要的包。这是在 manifest.mf -> Runtime -> Exported packages

    中完成的

    【讨论】:

      【解决方案2】:

      在依赖的插件中,通过 Open With...>Plug-in Manifest Editor 打开 META-INF/MANIFEST.MF。在 Dependencies 选项卡上,确保您的新插件列在依赖项中。

      之后,在您的启动器和 *.products 中,查找标有 添加所需插件 的按钮。按下。验证您的新插件是否已添加。

      【讨论】:

      • 新插件现在列在“依赖项”->“必需插件”中(但不在导入的包中 - 因为它仅在设置了可选标志时才有效),并且当我按下“启动器->“插件”中的“添加所需插件”按钮时,该包被列出但未检查。给出相同的NoClassDefFoundError,(我是否在启动器中检查新包) .
      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 2018-01-31
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多