[英]Loading Class from Jar File : java.lang.InstantiationException
[英]Java class loading from Jar file
我有一個包含多個類的巨大 jar 文件,但是我的應用程序中的對象圖只需要兩個類 A 和 B(以及 JVM 所需的其他默認類)。 如果是這種情況,Java 會將整個 Jar 文件加載到內存中嗎? 我的意思是我應該創建另一個只有 A 類和 B 類的 Jar 文件嗎? 我已經閱讀了Java中的類加載機制,我猜Java除了默認類之外只會加載所需的類,但我不確定。 謝謝你的時間。
Java 會將整個 Jar 文件加載到內存中嗎?
如果您將該.jar
文件放在類路徑上 - 是的,JVM 會將整個.jar
加載到為進程分配的內存中;
我的意思是我應該創建另一個只有 A 類和 B 類的 Jar 文件嗎?
似乎它(還)沒有使用Project Jigsaw 的 JPMS ,而且很可能,最好將這兩個類分開打包,是的;
我已經閱讀了Java中的類加載機制,我猜Java除了默認類之外只會加載所需的類,但我不確定。
盡管事實上.jar
將被加載到內存中,如果在您的應用程序中根本不使用它們,Java 將不會加載它們。
它們在應用程序需要時加載。
在使用/需要類的那一刻,Java 運行時環境調用 Java ClassLoader
,這個(這些)類加載器動態地將類加載到內存中。
類是必需的/使用的,意思是這樣的:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.