且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

与java.exe完全混淆

更新时间:2023-12-03 23:36:40

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:


  1. 找到已安装的JRE

  2. 加载JVM动态库( jvm.dll

  3. 创建新的Java虚拟机使用 Invocation API

  4. 使用 main()方法/guides/jni/spec/jniTOC.html\">JNI

  1. Locates an installed JRE
  2. Loads JVM dynamic library (jvm.dll)
  3. Creates a new Java Virtual Machine using the Invocation API
  4. Finds the main class and calls the main() method using JNI

JRE大致由


  1. JVM - jvm.dll

  2. 类库 - rt.jar

  3. 本地库 - 类库和OS平台之间的层,例如 java.dll net.dll nio.dll awt.dll 等。

  4. 资源 - 字体,属性,字符串等。

  1. JVM - jvm.dll
  2. Class Library - rt.jar
  3. Native libraries - the layer between the class library and the OS platform, e.g. java.dll, net.dll, nio.dll, awt.dll etc.
  4. Resources - fonts, properties, strings etc.

现在,字节码解释器,字节码验证程序,类加载器,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.