我将尝试尽可能多地提供详细信息,请原谅我,如果有些不相关的话.我在eclipse中有两个项目.项目1:com.myworkplace.parent,包含相同名称的代码.项目2:com.myworkplace.child,包含相同名称的代码(我将代码移到默认包中的代码中,如果这有所不同).据我所知,两者都位于我的工作区文件夹中,并按照您期望的方式进行结构化.
我使用Java Build Path - > Projects - > Add在eclipse中将child添加到parent的构建路径中.Parent的.classpath文件包含以下条目:
<classpathentry combineaccessrules="false" kind="src" path="/com.myworkplace.child"/>
Run Code Online (Sandbox Code Playgroud)
我在父级中添加对com.myworkplace.child.Child类的引用,导入它,编译它没有错误,运行并获取:
java.lang.NoClassDefFoundError: com/myworkplace/child/Child
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?
编辑:父应用程序是一个RCP应用程序,也许OSGI(我真的不太了解RCP和相关的东西.)一些谷歌搜索让我相信它可能与此有关.
由于您的应用程序是RCP应用程序,因此编辑代码时使用的eclipse类路径与运行时使用的OSGi类路径之间存在差异.听起来你需要将com.myworkplace.child插件添加到com.myworkplace.parent插件的依赖项列表中.
在父项目中打开plugin.xml或META-INF/manifest.mf.Eclipse应该打开PDE插件编辑器(基础配置文件的基于表单的编辑器).单击底部的Dependencies选项卡,将您的子插件添加到表单左侧的"Required Plug-ins"列表中.或者,您可以将com.myworkplace.child包添加到右侧的"Imported Package"列表中.两者之间的差异超出了这个答案的范围,但是你可以在日食文档中了解到你(希望)正朝着正确的方向前进.
| 归档时间: |
|
| 查看次数: |
3646 次 |
| 最近记录: |