Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Totally Confused with java.exe

Tags:

java

jvm

The JDK is the superset of JRE. JDK has the necessary tools like javac java.exe debugger etc + JRE. But JRE has a particular implementation of JVM.

My assumption is java.exe or the java application launcher is the interpreter (please correct me if I'm wrong). Also, JVM does the interpretation as well.

Finally is the interpreter part of JVM or part of JDK tools? Please explain.

like image 643
karthik4621 Avatar asked Dec 04 '25 13:12

karthik4621


1 Answers

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. 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 roughly consists of

  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.

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.

like image 63
apangin Avatar answered Dec 10 '25 10:12

apangin