2009-08-04 128 views
5

我試圖添加apache vfs jar文件作爲運行時依賴項。儘管它拋出下面的錯誤:如何將外部jar添加到eclipse rcp應用程序中?

拋出java.lang.ClassNotFoundException:org.apache.commons.vfs.VFS 在org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489) 在org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393) at org.eclipse.osgi .internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105) 在java.lang.ClassLoader.loadClass(ClassLoader.java:251) 在java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) 在file_explorer .View.setInput(View.java:295) 在file_explorer.View.initialize(View.java:130)

我怎麼能解決這個問題,在此先感謝。

回答

3

包括在Eclipse RCP應用程序的外部jar的最好辦法是將它打包爲一個插件,然後使用傳統的插件依賴性。

只需創建一個僅包含你的JAR一個新的插件。然後在清單編輯器的構建選項卡中,將您的jar添加到類路徑(位於右下角),並將其所有包導出到同一運行時選項卡中。另外一定要檢查你的jar是否在Build選項卡中被選中。

不過你應該能夠使用的jar在給定的插件的源代碼,如果你只有它,因爲我前面提到的添加到類路徑。

因爲一些其他的插件可能有興趣在使用VFS罐子和關注鼓分離關係,我認爲你應該把它包在自己開發的插件

2

最簡單的方法是找到捆綁在一個現有的OSGi包庫。

http://bundles.osgi.org/Main/Repository 
http://www.springsource.com/repository/app/ 
http://www.eclipse.org/orbit/ 
http://www.knopflerfish.org/repo/index.html 

SpringSource的回購協議中包含的Apache VFS束

然後,你需要將捆綁包添加到目標平臺(或只是將其複製到的dropins文件夾)

爲了捆綁正確安裝到一個新版本的eclipse應該使用現有的p2存儲庫,並將p2存儲庫中的包安裝到運行時平臺中。有兩種方法:你可以使用現有的(比如orbit p2 repo),或者你可以使用p2發佈者創建你自己的,如https://docs.sonatype.org/display/TYCHO/How+to+make+existing+OSGi+bundles+consumable+by+Tycho

2

如果你正在尋找添加所需的jar到你的項目classpath.Add需要的文件到項目結構中的lib目錄中。然後從項目中單擊plugin.xml的'運行時'選項卡,並將lib目錄中所需的jar添加到項目類路徑中。

1

Eclipse RCP的是它擴展了Java的依賴模型,所以你不能簡單地採取jar文件,並希望它能OSGi環境。要使用外部jar,您必須首先將其構建到插件,其中p2-maven-plugin可以提供幫助,您可以按照自述文檔。

隨着插件準備好了,你應該安裝該插件並將其添加到MANIFEST.MF。然後重新啓動Eclipse以使插件工作。

一個更簡單的方法,你不必安裝插件,只要按照(但構建JAR):

  1. plugin.xml - >Runtime標籤;
  2. 點擊Addclasspath部分,然後添加插件類路徑;
  3. 確保沒有在文本區域.路徑,否則New它。
相關問題