问题描述
JDK是JRE的超集。 JDK具有必要的工具,如javac java.exe调试器等+ JRE。
但是JRE有一个特殊的JVM实现。
The JDK is the superset of JRE. JDK has the necessary tools like javac java.exe debugger etc + JRE.But JRE has a particular implementation of JVM.
我的假设是java.exe或java应用程序启动器是解释器(如果我错了请纠正我)。
此外,JVM也做了解释。
My assumption is java.exe or the java application launcher is the interpreter (please correct me if I'm wrong).Also, JVM does the interpretation as well.
最后是JVM的解释器部分还是JDK工具的一部分?请解释。
Finally is the interpreter part of JVM or part of JDK tools? Please explain.
推荐答案
java.exe
既不是JVM也不是翻译。它是一个启动器 - 一个通常用C编写的小程序,它执行以下操作:
java.exe
is neither a JVM nor an interpreter. It is a launcher - a small program typically written in C which does the following:
- 找到已安装的JRE
- 加载JVM动态库(
jvm.dll
) - 创建新的Java虚拟机使用
- 使用
- Locates an installed JRE
- Loads JVM dynamic library (
jvm.dll
) - Creates a new Java Virtual Machine using the Invocation API
- Finds the main class and calls the
main()
method using JNI
JRE大致由
- JVM -
jvm.dll
- 类库 -
rt.jar
- 本地库 - 类库和OS平台之间的层,例如
java.dll
,net.dll
,nio.dll
,awt.dll
等。 - 资源 - 字体,属性,字符串等。
- JVM -
jvm.dll
- Class Library -
rt.jar
- Native libraries - the layer between the class library and the OS platform, e.g.
java.dll
,net.dll
,nio.dll
,awt.dll
etc. - Resources - fonts, properties, strings etc.
现在,字节码解释器,字节码验证程序,类加载器,JIT编译器,垃圾收集器和许多其他很酷的东西 - 都是Java虚拟机的所有部分。
Now, the Bytecode Interpreter, the Bytecode Verifier, the Class Loader, the JIT compiler, the Garbage Collector and many other cool stuff - are all parts of the Java Virtual Machine.
这篇关于与java.exe完全混淆的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!