簡體   English   中英

如何從添加到Java中的類路徑的新Jar中自動加載類?

[英]How to load classes automatically from new Jar added to Class path in java?

我有兩節課:

  1. MainClaz
  2. MyTest2

MainClaz

public class MainClaz {

    public static void main(String[] args) throws InterruptedException {
        while (true) {
            try {

                Class aClass = Class.forName("com.test.MyTest2");
                Object t =  aClass.newInstance();
            } catch (Exception e) {
                System.out.println("Exception For MyTest2 ");
            }
            Thread.sleep(10000);
            try {
                Class aClass = Class.forName("com.test.MyTest3");
                Object t =  aClass.newInstance();
            } catch (Exception e) {
                System.out.println("Exception For MyTest3 ");
                e.printStackTrace();
            }
        }
    }
}

我將兩個類都打包在一個jar中(Jar 1),並將其放在類路徑中。

由於MyTest3不存在,因此它將繼續拋出ClassNotFoundException

現在說...我創建了一個包含類MyTest3新jar(Jar 2),並將此jar復制到類路徑Folder。

由於我已經將MyTest3類放在類中的其他新jar中,因此應該在類路徑中繼續查找MyTest3 ,但是會拋出ClassNotFoundException

我如何使它工作?

在需求中添加更多信息:

到目前為止,類名已經過硬編碼。 但是它們將從外部源(比如說一些數據庫)中讀取。 但是我想要的是,在類路徑中的新jar中添加新類,在數據庫中添加類的全限定名條目,以便在循環程序的下一次迭代中可以動態加載類。

  1. 將新罐子的包名稱更改為test2
  2. MyTest3添加導入:
import com.test2.MyTest3;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM