完全被java.exe困惑

kar*_*621 1 java jvm

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

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

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

apa*_*gin 14

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

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

JRE大致由

  1. JVM - jvm.dll
  2. 班级图书馆 - rt.jar
  3. 本机库-类库和操作系统平台之间,例如层java.dll,net.dll,nio.dll,awt.dll等.
  4. 资源 - 字体,属性,字符串等.

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