[英]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.