2012-02-24 56 views
1

即:是否可以在應用程序啓動時選擇類路徑jar?

main_or_init() 
{ 
    if(some platform specific condition) { 
     addToClassPath("jarFileA.jar"); 
    } else { 
     addToClassPath("JarFileB.jar"); 
    } 

    // which implementation selected above 
    ClassFromJarFile firstInstance = new ClassFromJarFile(); 
} 

注意:是可以做到的,如果這裝貨,工廠等,但其他途徑,那麼整個平臺特定的軟件包實施可能會動態地在應用程序啓動選擇。

回答

4

請記住,一旦加載了一個類,它就會使用它自己的ClassLoader加載它所需的其他類。所以你需要做的是讓應用程序中的第一個類找出動態類路徑,並用你想要的條目列表構造一個URLClassLoader。然後使用那個ClassLoader加載「真實」主類,然後就完成了:動態類路徑將用於應用程序的其餘部分 - 或者用於通過「真實」主類加載的任何類,無論如何。

相關問題