java - 如何在eclipse中将另一个java项目打包为osgi依赖项

标签 java eclipse eclipse-rcp eclipse-plugin

我有一个java项目,其中只包含java代码。它依赖于一个java插件。我想采用非插件项目,并将其转换为 osgi 包,并将两者放入功能中。我这样做了,但是它永远找不到该类。每次都只是通过 NoClassDefError,但一切似乎都很好。为了确定起见,我使用非常简单的配置创建了第二个项目:

list .MF:

 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: test
 Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Export-Package: com.etc, 

该 jar 已正确构建并与真正的插件一起部署,但是当该插件调用依赖于“测试”的内容时,它永远不会加载类,它只是失败并显示 org.eclipse.core.runtime.CoreException: Plug-in "something.something.tools" was unable to instantiate class "com.something.something.SomeTool".

生成的 jar 非常好,它在 com.something.something 下包含所有类文件。并且 MANIFEST.MF 文件也在那里。

最佳答案

如果您只是将非插件项目转换为插件项目,可能会容易得多。在 Package Explorer 中右键单击该项目,然后选择“配置 > 转换为插件项目...”,然后使用正常的 Eclipse 结构从两个插件组合一个功能。否则,您需要手动进行大量配置,并且 Eclipse 文档不会有太大帮助,因为他们希望每个人都使用这些对话框。

如果您还在非插件上下文中使用此项目,则转换为插件不应导致任何问题 - jar 中只会有一些额外的内容,在非插件使用场景中会被忽略。

关于java - 如何在eclipse中将另一个java项目打包为osgi依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16872068/

相关文章:

Java ME : transform basic JDK 1. 5 "enum"对象进入 Java ME CLDC-1.1/IMP-NG (JDK 1.4)

java.lang.ClassNotFoundException : com. google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier$Builder

java - Eclipse Formatter 遵循 Java 代码约定吗?

java - 在 SWT 中闪烁 TableViewer 或 TreeViewer 的背景行

java - Eclipse TreeViewer/ViewPart 后台点击

java - 我的构造函数没有接受变量

java - Tomcat 。动态扩展堆内存

java - jdk 1.5中对象的序列化和jdk 1.6中反序列化

java - 访问另一个类 Eclipse 中使用的变量?

java - 如何在 Eclipse RCP 中获得按钮按下效果?