是动态解压缩的jar文件[重复]

问题描述 投票:0回答:1

此问题已经在这里有了答案:

例如,使用一个独立的可执行jar文件,在其中我们从应用程序生成具有所有依赖关系的文件。我的理解是,该文件包含所有压缩的类等。

[当我们通过命令行按如下java -jar myjar.jar执行此jar文件时,是否正在动态解压缩该文件?解释器是在执行之前先对所有内容进行解压缩吗?或者它究竟如何工作?

java jar executable-jar
1个回答
0
投票

我们在这里已经对类似问题有一个答案:How does a jar file get executed? Do the classes get extracted somewhere?

JVM能够从jar文件加载类或文件,而无需将jar提取为临时文件。此功能在标准库中也可供您使用,有关更多信息,请参见JarFile。

因此,JVM不会将jar提取到临时文件,类(和资源)只是按需加载。

我们还可以通过执行命令“ java -jar myjar.jar”来检查是否提取了jar,并在执行程序时检查jar所在的文件夹是否有任何提取。

© www.soinside.com 2019 - 2024. All rights reserved.