使用JDK,我可以将.java文件编译成.class文件,然后我可以运行.class文件,这是否意味着.class文件是在JVM上运行的最终可执行文件?
此外,什么是jar文件?以及jar文件和.class文件之间的区别?
2 回答
1.class文件是一个byte code files
由JVM执行的文件,在JVM之外没有任何意义。让它只在 JVM 上有意义而不在外部有意义,这就是让每个 java 程序都在其内部运行的原因。own sandbox .
2. Jar 文件是运行程序所必需的所有文件的集合,认为它是打包所有文件和依赖库并提供单个文件的简单方法。我们也有可以称为class file
libraries
Runnable Jars
Executable Jar
///////// 编辑部分////////////////
现在,这由(即时编译器)在运行时byte-code
转换为。JIT 会在 Runtime 期间寻找程序的运行时密集部分,然后将其转换为机器级可执行文件,这部分程序称为,而称为。machine level executable
JIT
Hot-spot
JIT
Hot-Spot-Compiler
顾名思义,jar(java 存档)是可以执行的 java 类的存档或集合。
Java 反编译器是一种从 .class 扩展名到 .java 扩展名进行逆向工程的工具。
要制作 jar,请使用以下链接
http://docs.oracle.com/javase/tutorial/deployment/jar/build.html
或使用 windows 命令提示符
jar cf JAR_FILE_NAME FILE_NAMES_OR_DIRECTORY_NAME
e.g.
jar cf MyApp1.jar C:\JavaProject\MyApp