簡體   English   中英

從提取的 war 文件中動態加載外部類

[英]Load dynamicly external classes from a extracted war file

這個問題很受歡迎,但我找不到避免“java.lang.ClassNotFoundException”的方法。

我已經實現了一個動態加載一些外部類的方法(我在提取一個war文件后得到)

  Class<?> classGetter() {
    URL url;
    Class<?>  cls = null;
    try {
        String className=new Substringer(entireFilePath.getName(), 5).output;
        String classPath=new 
        Substringer(entireFilePath.getAbsolutePath(),5+className.length()).output;
        File classDirPath = new File(classPath);
        url = classDirPath.toURI().toURL();
        URL[] urls = new URL[]{url};
        URLClassLoader cl = new URLClassLoader(urls); 
        cls = cl.loadClass(packageGetter()+"."+className);
        cl.close();
    } catch (ClassNotFoundException | IOException e) {
        e.printStackTrace();
    }
    return cls;
}

同樣的異常仍然一次又一次地出現。 這是堆棧跟蹤:

java.lang.ClassNotFoundException: bber.Counter
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at earviewer.ClassesLoaser.classGetter(ClassesLoaser.java:48)
    at earviewer.ClassesLoaser.main(ClassesLoaser.java:58)
    Exception in thread "main" java.lang.NullPointerException
    at earviewer.ClassesLoaser.main(ClassesLoaser.java:59)

當您提供 class 的完全限定名稱但嘗試將其加載到 package 中時,會發生此錯誤。 我們應該 select class 文件的路徑而不進入 package 文件夾

暫無
暫無

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

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