Völlig verwirrt mit java.exe

Lesezeit: 3 Minuten

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.

  • 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


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:

  1. Sucht eine installierte JRE
  2. Lädt die dynamische JVM-Bibliothek (jvm.dll)
  3. Erstellt eine neue Java Virtual Machine mit der Aufruf-API
  4. Findet die Hauptklasse und ruft die auf main() Methode verwenden JNI

JRE besteht ungefähr aus

  1. JVM – jvm.dll
  2. Klassenbibliothek – rt.jar
  3. Native Bibliotheken – die Schicht zwischen der Klassenbibliothek und der OS-Plattform, z java.dll, net.dll, nio.dll, awt.dll usw.
  4. 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.

  • Vielen Dank für die Erklärung

    – karthik4621

    14. Oktober 2014 um 14:40 Uhr

  • Danke. Könnten Sie eine Linux-Version der Erklärung der ELF-Datei geben java? Ist es im Grunde dasselbe wie die Windows-Version, indem es ersetzt wird .dll mit .so in deiner antwort?

    – Tim

    14. April 2019 um 11:13 Uhr


  • Führen Sie alle Threads aus (die beim Ausführen implizit erstellt werden java Befehl zum Ausführen eines kompilierten Java-Programms) eine Java Virtual Machine ausführen? Oder nur einzelne Threads? stackoverflow.com/questions/55666827/…

    – Tim

    14. April 2019 um 11:18 Uhr

  • @Tim Ja, das gleiche gilt für Linux.

    – angin

    14. April 2019 um 11:48 Uhr

  • Alle von JVM erstellten Threads führen Java Virtual Machine-Code aus. Manchmal ist es ein nativer Code (zB für Compiler-Threads und GC-Threads), und manchmal ist es Java-Code.

    – angin

    14. April 2019 um 11:49 Uhr

@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 –

  • Versuchen Sie, eine java.exe zu verwenden, die im bin-Verzeichnis von JRE verfügbar ist, um einen Bytecode zu interpretieren (jede pro-kompilierte .class-Datei, um den Unterschied zu kennen, und achten Sie darauf, die Pfadumgebungsvariable zu entfernen, die auf java.exe am JDK-Installationsspeicherort zeigt).

    – neugierig

    24. September 2014 um 19:55 Uhr

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

  • Was interpretiert es?

    – Sotirios Delimanolis

    24. September 2014 um 15:42 Uhr

  • Aber meine Frage ist, ob ich überhaupt nur JRE in meinem System habe, wie kann die JVM den Interpreter verwenden, der eigentlich ein Teil der JDK-Tools ist.

    – karthik4621

    24. September 2014 um 18:16 Uhr

  • @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 sowie die schnelle Auffrischung des Inhalts der JDK/JRE-Installationsorte durchlesen

    – neugierig

    24. September 2014 um 19:45 Uhr

998530cookie-checkVöllig verwirrt mit java.exe

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy