Eclipse 类路径和 NoClassDefFoundError

2024-01-20

我将尝试在这里提供尽可能多的细节,如果有些不相关,请原谅我。 我在 eclipse 中有两个项目。项目1:com.myworkplace.parent,代码位于同名包中。项目 2:com.myworkplace.child,代码位于同名包中(我将代码从默认包移动到该包,如果这有什么不同的话)。据我所知,两者都位于我的工作区文件夹中,并且按照您期望的方式构建。

我已使用 Java Build Path -> Projects -> Add 将子级添加到 eclipse 中父级的构建路径中。父级的 .classpath 文件包含以下条目:

    <classpathentry combineaccessrules="false" kind="src" path="/com.myworkplace.child"/>

我在父类中添加对 com.myworkplace.child.Child 类的引用,导入它,编译它没有错误,运行并获取:

java.lang.NoClassDefFoundError: com/myworkplace/child/Child

是什么赋予了?

编辑:父应用程序是一个 RCP 应用程序,也许是 OSGI(我真的不太了解 RCP 和相关的东西。)一些谷歌搜索让我相信它可能与此有关。


由于您的应用程序是 RCP 应用程序,因此编辑代码时使用的 eclipse 类路径与运行时使用的 OSGi 类路径之间存在差异。听起来您需要将 com.myworkplace.child 插件添加到 com.myworkplace.parent 插件的依赖项列表中。

在父项目中打开plugin.xml 或META-INF/manifest.mf。 Eclipse 应该打开 PDE 插件编辑器(底层配置文件的基于表单的编辑器)。单击底部的“依赖项”选项卡,并将您的子插件添加到表单左侧部分的“必需插件”列表中。或者,您可以将 com.myworkplace.child 包添加到右侧的“导入的包”列表中。两者之间的区别超出了本答案的范围,但您可以在 eclipse 文档中阅读有关内容,因为您(希望)正在朝着正确的方向前进。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Eclipse 类路径和 NoClassDefFoundError 的相关文章

随机推荐