与java.exe完全混淆
JDK是JRE的超集。 JDK具有必要的工具,如javac java.exe调试器等+ JRE。 但是JRE有一个特定的JVM实现。
我的假设是java.exe或java应用程序启动器是解释器(如果我错了,请纠正我)。 此外,JVM也进行了解释。
最后是JVM的解释器部分还是JDK工具的一部分? 请解释。
java.exe
既不是JVM也不是解释器。 它是一个启动器 – 一个通常用C编写的小程序,它执行以下操作:
- 找到已安装的JRE
- 加载JVM动态库(
jvm.dll
) - 使用Invocation API创建新的Java虚拟机
- 查找主类并使用JNI调用
main()
方法
JRE大致由
- JVM –
jvm.dll
- 类库 –
rt.jar
- 本机库 – 类库和OS平台之间的层,例如
java.dll
,net.dll
,nio.dll
,awt.dll
等。 - 资源 – 字体,属性,字符串等。
现在,字节码解释器,字节码validation器,类加载器,JIT编译器,垃圾收集器和许多其他很酷的东西 – 都是Java虚拟机的一部分。
@karthik4621 java.exe / javaw应用程序是JRE的一部分,看看JRE安装目录找到bin文件夹,找到可执行文件和你发现捆绑在一起的java.exe也跟JDK一样:)了解更多关于这个问题的见解我建议您阅读oracle文档以及快速刷新JDK / JRE安装位置的内容 –
你是对的java.exe是JVM(java虚拟机)的解释器,JVM是通过与底层操作系统通信来执行代码的地方