Das JDK ist die Obermenge von JRE. JDK verfügt über die erforderlichen Tools wie javac java.exe Debugger usw. + JRE. Aber JRE hat eine bestimmte Implementierung von JVM.
Meine Annahme ist java.exe oder der Java-Anwendungsstarter ist der Interpreter (bitte korrigieren Sie mich, wenn ich falsch liege). Außerdem führt JVM auch die Interpretation durch.
Schließlich ist der Interpreter Teil von JVM oder Teil von JDK-Tools? Bitte erkläre.
java.exe
ist weder eine JVM noch ein Interpreter. Es ist ein Startprogramm – ein kleines Programm, das normalerweise in C geschrieben ist und Folgendes tut:
- Sucht eine installierte JRE
- Lädt die dynamische JVM-Bibliothek (
jvm.dll
)
- Erstellt eine neue Java Virtual Machine mit der Aufruf-API
- Findet die Hauptklasse und ruft die auf
main()
Methode verwenden JNI
JRE besteht ungefähr aus
- JVM –
jvm.dll
- Klassenbibliothek –
rt.jar
- Native Bibliotheken – die Schicht zwischen der Klassenbibliothek und der OS-Plattform, z
java.dll
, net.dll
, nio.dll
, awt.dll
usw.
- Ressourcen – Schriftarten, Eigenschaften, Zeichenfolgen usw.
Nun sind der Bytecode Interpreter, der Bytecode Verifier, der Class Loader, der JIT-Compiler, der Garbage Collector und viele andere coole Sachen – alle Teile der Java Virtual Machine.
@karthik4621 java.exe/javaw-Anwendung ist Teil von JRE. Schauen Sie in das JRE-Installationsverzeichnis, um den bin-Ordner zu finden, um die ausführbaren Dateien zu finden, und die java.exe, die Sie zusammen mit JDK finden, ist auch gleich 🙂 für mehr Einblick in das Problem i schlagen vor, dass Sie die Oracle-Dokumentation durchlesen und den Inhalt der JDK/JRE-Installationsorte schnell auffrischen –
Sie haben Recht java.exe ist der Interpreter für JVM (Java Virtual Machine) und JVM ist der Ort, an dem Ihr Code ausgeführt wird, indem er mit dem zugrunde liegenden Betriebssystem kommuniziert
9985300cookie-checkVöllig verwirrt mit java.exeyes
Meine Frage ist nicht der Unterschied zwischen JDK, JRE usw. Der Zweifel, den ich habe, ist, ob ich überhaupt nur JRE in meinem System habe, wie die JVM den Interpreter verwenden kann, der eigentlich Teil der JDK-Tools ist.
– karthik4621
24. September 2014 um 18:31 Uhr
@karthik4621 Die JRE ist die JVM (plus ein bisschen mehr). Es ist der Bytecode-Interpreter.
– David Newton
24. September 2014 um 19:51 Uhr