![](/img/trans.png)
[英]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.