2013-06-01 75 views
1

我有一個java項目,其中只包含java代碼。它依賴於一個java插件。我想採用非插件項目,並將其轉換爲一個osgi包,並將其放入一個功能。我做到了這一點,但它永遠找不到課程。它每次都會通過NoClassDefError,但一切看起來都很好。我創建了非常簡單的配置的第二個項目只是要確定:如何在eclipse中將另一個java項目打包爲osgi依賴關係

MANIFEST.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, 

將廣口正確建立與真實插件一起部署,但如果該插件調用一些東西,取決於在「測試」它從來沒有加載的類,它只是失敗,org.eclipse.core.runtime.CoreException: Plug-in "something.something.tools" was unable to instantiate class "com.something.something.SomeTool".

其中生成的罐子是完全正常的,它都在那裏的類文件的com.something.something下和MANIFEST.MF文件是有作爲。

+0

SomeTool.java是否包含默認構造函數? – Chris

+0

是的代碼是有效的。如果我通過plugin.xml將所有這些作爲插件運行,它將全部加載到該eclipse實例中。不同的是,eclipse實例在其classpath上具有'com.something.something'。 – Zombies

回答

0

如果您只是將非插件項目轉換爲插件項目,可能會更容易。右鍵單擊Package Explorer中的項目,然後選擇Configure > Convert to Plug-In Projects...然後使用普通的Eclipse結構從兩個插件中編寫一個特性。否則,您需要手動完成大量配置,而Eclipse文檔不會有太大幫助,因爲他們希望每個人都使用對話框。

如果您還在非插件上下文中使用此項目,轉換爲插件不應該導致任何問題 - 在非插件使用場景中,jar中只會有一些額外的東西被忽略。

相關問題