2012-02-24 11 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を使用して「本当の」メインクラスをロードすると、終了します。ダイナミッククラスパスは、アプリケーションの残りの部分、または「実際の」メインクラスを介してロードされたクラスに対して使用されます。

関連する問題