与java.exe完全混淆

JDK是JRE的超集。 JDK具有必要的工具,如javac java.exe调试器等+ JRE。 但是JRE有一个特定的JVM实现。

我的假设是java.exe或java应用程序启动器是解释器(如果我错了,请纠正我)。 此外,JVM也进行了解释。

最后是JVM的解释器部分还是JDK工具的一部分? 请解释。

java.exe既不是JVM也不是解释器。 它是一个启动器 – 一个通常用C编写的小程序,它执行以下操作:

  1. 找到已安装的JRE
  2. 加载JVM动态库( jvm.dll
  3. 使用Invocation API创建新的Java虚拟机
  4. 查找主类并使用JNI调用main()方法

JRE大致由

  1. JVM – jvm.dll
  2. 类库 – rt.jar
  3. 本机库 – 类库和OS平台之间的层,例如java.dllnet.dllnio.dllawt.dll等。
  4. 资源 – 字体,属性,字符串等。

现在,字节码解释器,字节码validation器,类加载器,JIT编译器,垃圾收集器和许多其他很酷的东西 – 都是Java虚拟机的一部分。

@karthik4621 java.exe / javaw应用程序是JRE的一部分,看看JRE安装目录找到bin文件夹,找到可执行文件和你发现捆绑在一起的java.exe也跟JDK一样:)了解更多关于这个问题的见解我建议您阅读oracle文档以及快速刷新JDK / JRE安装位置的内容 –

你是对的java.exe是JVM(java虚拟机)的解释器,JVM是通过与底层操作系统通信来执行代码的地方