Javaの動的ロード動的ロードのJava jarファイルのjarファイルとクラスファイル

パブリック 静的 ボイド(文字列[]引数)主は
             スローIllegalAccessExceptionが、はIllegalArgumentException、にInvocationTargetException、ないNoSuchMethodException、
            SecurityExceptionが、ClassNotFoundExceptionが、ないInstantiationException、でMalformedURLException { 
//          文字列のパス=
 //          「/xx/.m2/repository/org/apache/commons/commonsを「-lang3 / 3.1 /コモンズ、lang3-3.1.jar。
        文字列のパス=「コモンズ-lang3-3.1.jar」。// ジャー文件需放在工程目录下

        loadJar(パス)。
        クラス <?> AClassは= Class.forNameの( "org.apache.commons.lang3.StringUtils" ); 
        インスタンスオブジェクト =aClass.newInstance(); 
        オブジェクトストリップ = aClass.getDeclaredMethod( "ストリップ"は、文字列クラス。、ストリングクラス).invoke(例えば、
                「[1,2,3,4,5,6,2,3,5、 。1] "" [] " ); 
        System.out.printlnは(ストリップ); 

    } 

    プライベート 静的 無効 loadJar(文字列のjarpath)はスローでMalformedURLException { 
        ファイルjarファイル = 新しい新しいファイル(jarpathを); // のURLClassLoaderからクラスファイルクラスを取得します方法クリップ、jarファイルは、フォルダと考えることができ

        IF(jarFile.exists()== falseを){ 
            System.out.printlnは( "が見つかりませんJARファイル。");
             戻り値; 
        } 

        // addURLは、動的呼び出し準備クラスローダの方法を取得 
        する方法、メソッド= ヌル;
         試み{ 
            メソッドがするURLClassLoaderを=。クラス .getDeclaredMethod( "addURL"、URL。クラス); 
        } キャッチ(ないNoSuchMethodException | SecurityExceptionがE1) { 
            e1.printStackTrace(); 
        } 
        
        // アクセスメソッドを取得し、元の値の保存
        ブールアクセス= method.isAccessibleを();
         試み{
             //は書き込み可能にアクセスを変更し
            たIF(==アクセス可能偽の){ 
                method.setAccessible(真の); 
            } 

            // システムクラスローダ取得 
            URLClassLoaderのクラスローダ= (URLClassLoaderの)ClassLoader.getSystemClassLoaderを(); 
            
            // パスのjarファイルのURLを取得する 
            のjava.net.URL URL = jarFile.toURI() .toURL(); 
            
            // JAR URLパスは、パスにシステムに加え
            、Method.invoke(クラスローダ、URL)
        } キャッチ(例外E){ 
            ; e.printStackTrace()
        } 最後に{
             // ライトバックアクセス
            method.setAccessible(アクセス可能); 
        } 

    }

 

参考記事:

Javaの動的ロードジャーとクラスファイル

おすすめ

転載: www.cnblogs.com/jiftle/p/11078638.html