完全被java.exe困惑

时间:2014-09-24 15:30:12

标签: java jvm

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

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

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

3 个答案:

答案 0 :(得分:14)

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

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

    JRE大致由

    组成
    1. JVM - jvm.dll
    2. 班级图书馆 - rt.jar
    3. 本机库 - 类库和OS平台之间的层,例如java.dllnet.dllnio.dllawt.dll等。
    4. 资源 - 字体,属性,字符串等。
    5. 现在,字节码解释器,字节码验证程序,类加载器,JIT编译器,垃圾收集器和许多其他很酷的东西 - 都是Java虚拟机的一部分。

答案 1 :(得分:-1)

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

答案 2 :(得分:-2)

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