Ja, es kann verwirrend sein.
Sie haben nicht danach gefragt, aber ich werde von hier aus beginnen. Die JVM ist die Java Virtual Machine. Es ist ein Programm, das kompilierten Java-Code lesen kann (die .class-Dateien und die .jar-Dateien, die einfach .zip-Dateien sind, die eine Reihe von .class-Dateien enthalten) und diese ausführen. Es gibt viele JVMs, zum Beispiel benötigen Sie eine JVM für Windows, eine für Linux, eine für OSX usw. Aber es gibt auch viele alternative JVMs, JVMs für Embedded-Geräte usw. (viele werden nicht zustimmen und sagen, dass die JVM nur eine ist), und es ist eine Spezifikation.Allerdings sagt ein Systemadministrator gewöhnlich "die JVM", um die tatsächliche Binärdatei anzuzeigen, die auf dem Server läuft.
Sie haben auch nicht nach dem folgenden gefragt. Die JRE ist die Java-Laufzeitumgebung. Es enthält alles, was benötigt wird, um eine Java-Anwendung, das ist die JVM selbst, die Standard-Bibliothek und eine Reihe anderer Dateien. Die Standardbibliothek selbst ist sehr wichtig, da sie viele nützliche Dinge enthält, die Sie bei der Entwicklung von Java-Anwendungen verwenden werden. Es enthält all die Sachen in Java. * Pakete und einige private Sachen in com.sun, com.oracle Paketen.
Verschiedene Versionen von Java (1.0, 1.1 usw. bis 1.7, auch bekannt als Java 7) enthalten normalerweise Verbesserungen sowohl an der JVM als auch an der Standardbibliothek, so dass die beiden normalerweise zusammen ausgeführt werden müssen in der JRE zusammen verpackt.
Wenn Sie ein Java-Programm auf Ihrem Computer ausführen, haben Sie eine JRE installiert.
Das JDK ist das Java Development Kit. Es enthält die JRE sowie viele andere nützliche Sachen für entwickelnden Java-Anwendungen.Dazu gehören offensichtlich der Compiler (der aus gutem Grund ebenfalls in der JRE enthalten ist, aber Sie können diesen Umstand jetzt ignorieren), das JAR-Dienstprogramm zum Erstellen von JAR-Dateien, viele Tools zum "Dekompilieren" von Klassendateien, Inspizieren von .jar-Dateien, Repackage sie usw.
Sie enthalten normalerweise auch Dokumentation für die Standardbibliothek und auch alle Quellen der Standardbibliothek, weil sie für Entwickler zum Lesen und Überprüfen nützlich sind. Wenn Sie ernsthaft Java-Anwendungen entwickeln möchten, benötigen Sie das JDK.
Bei JavaSE, JavaEE, JavaME usw. handelt es sich um sogenannte "Editionen". Im Grunde genommen, da das Java-Ökosystem sehr groß ist, entschied ich Sun Java in verschiedenen Editionen zu bieten:
- JavaSE: ist die Standard-Ausgabe, es ist in der Regel eine gute Passform für die Client-seitige Software, normale Anwendungen usw.
- JavaME: ist die mobile Version, mit der kleine Spiele auf alten Telefonen hergestellt wurden, aber es ist im Grunde eine "kleinere" Version von Java, die für Prozessoren mit sehr geringer Kapazität geeignet ist.
- JavaEE: ist die "Enterprise Edition". Es wird verwendet, um Server-seitiges Zeug zu entwickeln, also enthält es viele Bibliotheken, die auf der Serverseite verwendet werden.
In Bezug auf die Nummerierung haben sie es ziemlich vermasselt. Eigentlich haben sie nach Java 1.4 den JCP erstellt, um die Community in die Entwicklung von Java einzubeziehen, und beginnend mit Java 1.5 wird sie offiziell "Java 5" genannt, obwohl die meisten in der Branche sie 1.5 nennen. Außerdem war Java 1.2 Java 2, aber alle, die ich kenne, waren nicht working in Sun at that time always called it 1.2.
Wenn Sie Java herunterladen (sagen wir Java 7), kommt es mit der JVM. –
Ja, die JVM ist eine der Komponenten der JRE. Das JDK enthält auch die JRE. Also ja, du wirst auch die JVM haben. Eigentlich "die JVM" (wie hier beabsichtigt, nicht die JVM-Spezifikation, die eigentliche binäre) ist das "java.exe" -Programm und es sind DLLs, die Sie sehen, wenn Sie ein Java-Programm (oder den Java-Befehl und damit verwandte .so wenn Sie sind) unter * nix oder osx) –
Vielen Dank, es hat wirklich viel erklärt :) –