2013-07-17 125 views
0

我有一個eclipse RCP應用程序,我需要添加一些外部jar文件。 問題是我不能將jar添加到插件中,並將此插件添加到我的RCP應用程序中。Eclipse RCP:將外部目錄添加到類路徑

由於幾個原因,我只能將路徑添加到jar文件所在的目錄。這些jar文件必須在啓動時添加到程序的類路徑中。 而目錄的路徑是一個變量(例如它們被放置在一個文件中)。

是否有可能以某種方式向類路徑添加外部路徑?

+0

  • configurate CLASSPATH變量可以或許我補充一下所得到的eclipise.ini某事物我可以擴展類路徑嗎? – fyaa

  • +0

    mmmm?自定義類加載器可能?然後你可以共享API接口來訪問這些類或使用反射。另外,如果這些目錄包含捆綁包,那麼您可以通過Equinox框架進行安裝。 – Ezhik

    +0

    如果你選擇OSGi的方式,然後看'BundleContext.installBundle(位置,流)' – Ezhik

    回答

    0

    添加外部目錄到類路徑中,有三種方法:

    > **1. System.setProperty("java.class.path", 
    > System.getProperty("java.class.path")+";"+"directory");** 
    
    1. 檔案文件=新的文件( 「/家/../ my.jar」); URLClassLoader classloader =(URLClassLoader)ClassLoader.getSystemClassLoader(); 方法add = URLClassLoader.class.getDeclaredMethod(「addURL」,new Class [] {URL.class}); add.setAccessible(true); add.invoke(classloader,new Object [] {file.toURI()。toURL()});在.bashrc中

    +0

    第一件事情不明顯。 而第三種選擇很奇怪。 第二件事情是有效的,但在我的情況下,當調用動態添加的罐子的方法時,我得到一個NoSuchMethodError。 – fyaa

    +0

    你是對的,系統在啓動時讀取屬性,所以在運行時修改它不起作用。 – CHmoonKa

    相關問題