簡體   English   中英

加載具有外部依賴關系的外部類-URLClassLoader ClassNotFoundException

[英]Loading external Classes with external dependencies - URLClassLoader ClassNotFoundException

我正在通過external.JAR文件並通過URLClassLoader加載類,只要外部類不引用另一個JAR,該類就可以工作。 如果我這樣做,將產生ClassNotFoundException。

作為解決方法,我將其他第二層JAR添加為依賴項,但我想在運行時動態加載它們。

問題:如何加載引用其他外部類的外部類? 或如何以正確的順序加載外部JAR文件和類,以免出現異常?

我應該捕獲異常,然后“首先”加載尚未加載的類嗎?

您實際上可以使用子一流的加載器加載它們。 該主jar及其所有依賴項將屬於該類加載器,並且可以在需要時被引用和丟棄。

主類加載器-> ChildFirstClassLoader->加載jar和從屬jar

這是一個很好的例子

這是另一個類似的參考

半示例

File file = new File("c:\\free-universe-games-llc\\app.jar");
URL url = file.toURI().toURL();
ChildFirstClassLoader urlClassLoader = new ChildFirstClassLoader(new URL[]{url}, SomeClassLoader.class.getClassLoader()); 
Class<?> aClass = urlClassLoader.loadClass("com.freeuniversegames.app.App.class");
Object o = aClass.newInstance();

暫無
暫無

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

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