.class文件是JVM的可执行文件吗?

时间:2012-08-11 10:13:27

标签: jvm java

使用JDK,我可以将 .java 文件编译成 .class 文件,然后我可以运行 .class 文件,这意味着 .class 文件是在JVM上运行的最终可执行文件? 此外,什么是 jar 文件?以及 jar 文件和 .class 文件之间的区别?

2 个答案:

答案 0 :(得分:3)

1。类文件是byte code files,由JVM执行,在JVM之外没有任何意义。仅使其有意义JVM但不在外面,是使每个java程序在own sandbox .

中运行的原因

2。 Jar文件是运行程序所需的所有class filelibraries集合认为它是简单的方法来打包所有文件和依赖库并提供单个文件。我们还有Runnable Jars,可以称为Executable Jar

////////// EDITED PART //////////////////

现在,byte-code(即时编辑器)在运行时期间将此machine level executable转换为JIT JIT将在运行时期间查找程序的运行时密集型部分,然后将其转换为机器级可执行文件,该程序的这一部分称为 {{1 } {} Hot-spot被称为JIT

答案 1 :(得分:1)

一个jar(java archive)就像它的名字所说的那样是一个可以执行的java类的存档或集合。

java反编译器是一种从.class扩展名到.java扩展名进行逆向工程的工具。

使用以下链接制作jar

http://docs.oracle.com/javase/tutorial/deployment/jar/build.html

或使用Windows命令promt

jar cf JAR_FILE_NAME FILE_NAMES_OR_DIRECTORY_NAME
e.g.
jar cf MyApp1.jar C:\JavaProject\MyApp