我有一个只包含 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 文件也在那里。