Totally Confused with java.exe(完全与 java.exe 混淆)
问题描述
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) - 使用 调用 API
- 找到主类并使用 main() 方法/jniTOC.html">JNI
- 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 - 原生库 - 类库和操作系统平台之间的层,例如
java.dll、net.dll、nio.dll、awt.dll等 - 资源 - 字体、属性、字符串等
现在,字节码解释器、字节码验证器、类加载器、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 混淆的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:完全与 java.exe 混淆
基础教程推荐
- Struts2 URL 无法访问 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- 存储 20 位数字的数据类型 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
