java - jar 文件是否即时解压

标签 java jar executable-jar

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

当我们通过命令行执行这个jar文件时,如下java -jar myjar.jar ,这是动态解压吗?解释器在执行之前是否首先解压缩所有内容,或者它到底是如何工作的?

最佳答案

我们已经在这里对类似问题有了一个答案: 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所在的文件夹是否有解压。

关于java - jar 文件是否即时解压,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58477462/

相关文章:

java - Else 语句不在 SQL 数据库的 while 循环内执行

java - 使用 Java 获取 ZIP 文件中目录的内容

java - Hibernate代理作为HashMap中的键

Java int 数组到 StringBuilder

java - 在 NetBeans 中永久包含外部 jar

java - 从 .jar 文件启动文本文件(文件路径?)

java - 奇怪的 ClassNotFoundException

java - Jar 可以双击运行,但不能在命令行中运行

Java:Stack.pop() + 不兼容的类型

java - 使用 JDK 和/或 JRE 提供的工具,有没有办法查看给定 JAR 的 list 文件?