1

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

清单.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 文件也在那里。

4

1 回答 1

0

如果您只是将非插件项目转换为插件项目,可能会容易得多。右键单击 Package Explorer 中的项目并选择Configure > Convert to Plug-In Projects...Then compose a feature from the two plugins using the normal Eclipse structure。否则,您需要手动进行大量配置,而 Eclipse 文档也无济于事,因为它们希望每个人都使用这些对话框。

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

于 2013-06-23T17:37:30.653 回答