2017-01-01 43 views
0

Main類在運行時

public class Main { 
    public static void main(String[] args) { 
     // Class load 
     A a = new A(); 
     a.msg(); 
    } 
} 

public class A { 
    public void msg() { 
     System.out.println("msg"); 
    } 
} 

我已經在調用類A

的MSG()方法中的主要類編寫的代碼的類更改系統類加載器在創建jar文件後,我拔出A.class。

然後路徑將有一個缺少A.class和A.class的jar文件。

A a = new A(); 
a.msg(); 

如何動態加載並運行A.class而不對上述代碼進行任何更改?

請幫助我..

+0

我認爲JVM會期望'A.class'處於你刪除它的位置。因此,你的代碼將失敗。你爲什麼想這樣做? –

+0

成爲JAR後刪除/拉動A.class的目的是什麼? –

+0

我想從本地網絡獲取類的字節碼並加載它。 – Pneumono

回答

0

的A.class必須在classpath中某處的代碼運行。你可以把它放在它自己的jar中,並將第二個jar添加到classpath中。然後類加載器可以找到它。

+0

我想獲取本地網絡上類的字節碼並加載它。我該怎麼做呢? – Pneumono

+0

我不知道如何動態加載類字節碼。 – Pneumono