簡體   English   中英

如何在運行時加載jar文件的所有類?

[英]How to load all classes of a jar file at runtime?

根據這個問題 ,可以通過以下方式從jar文件加載類:

ClassLoader loader = URLClassLoader.newInstance(
    new URL[] { jarFileURL },
    getClass().getClassLoader()
);
Class<?> clazz = Class.forName("mypackage.MyClass", true, loader);

如何加載jar文件中包含的所有類?

類加載器將在需要時立即加載.class文件。 如果不需要,則不會加載。

您為什么認為您的方法將是對類加載器已經做的事情的改進?

如果您真的想動態讀取類,則將其留給已經實現了該方法的專業人員。 實現自己的類加載器很困難。 相信我。 我已經嘗試了幾次。 請改用OSGi之類的東西,它可以為您提供動態的類加載以及更多其他功能。

您將不得不將其作為zip文件打開,瀏覽名稱,並假定所有以.class結尾的條目都是類文件並加載它們,而忽略嵌套的類等。

但為什么?

暫無
暫無

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

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