jar文件如何执行?这些课程会被提取吗?

问题描述

JVM能够从jar文件加载类或文件,而无需将jar提取为临时文件

您也可以在标准库中使用此功能JarFile有关更多信息,请参见。

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

jar文件基本上是带有预定义条目的zip文件"Meta- INF/MANIFEST.MF"(仅在可执行jar情况下才是必需的)。该MANIFEST.MF条目(文件)包含JVM读取的一些信息。有关清单文件的更多信息:

处理清单文件:基础知识

如果是可执行jar,则清单文件还包含应加载的主类,并public static void main(String[])调用该类的方法以启动应用程序。该Main-Class清单条目指定主类:

Main-Class: classname

解决方法

我们知道这jar是一种压缩的存档文件格式,可以用作已编译的Java类和conf文件的容器。据我所知,要从压缩的容器文件中读取任何内容,首先需要将它们提取到某个位置。

那么JVM如何在jar中执行类?它是否将罐子中的内容提取到临时位置,然后执行类?

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”