Was ist der Unterschied zwischen JDK und JRE?

926

Was ist der Unterschied zwischen JDK und JRE?

Was sind ihre Rollen und wann sollte ich die eine oder andere verwenden?

i2ijeya
quelle
12
Eine schöne und prägnante Antwort auf diese Frage finden Sie unter: java.com/de/download/faq/techinfo.xml
Akshay Lokur
5
@kenorb basierend auf Zeitstempeln, scheint die verknüpfte Frage ein Duplikat dieser zu sein.
Ungeheuer

Antworten:

1223

Die JRE ist die Java-Laufzeitumgebung . Es ist ein Paket mit allem, was zum Ausführen eines kompilierten Java-Programms erforderlich ist, einschließlich der Java Virtual Machine (JVM), der Java-Klassenbibliothek, des javaBefehls und anderer Infrastrukturen. Es kann jedoch nicht zum Erstellen neuer Programme verwendet werden.

Das JDK ist das Java Development Kit , das voll funktionsfähige SDK für Java. Es hat alles, was die JRE hat, aber auch den Compiler ( javac) und die Tools (wie javadocund jdb). Es ist in der Lage, Programme zu erstellen und zu kompilieren.

Wenn Sie nur Java-Programme auf einem Computer ausführen möchten, installieren Sie normalerweise nur die JRE. Es ist alles was du brauchst. Wenn Sie jedoch eine Java-Programmierung planen, müssen Sie stattdessen das JDK installieren.

Manchmal muss das JDK installiert sein, auch wenn Sie keine Java-Entwicklung auf einem Computer planen. Wenn Sie beispielsweise eine Webanwendung mit JSP bereitstellen, führen Sie technisch gesehen nur Java-Programme auf dem Anwendungsserver aus. Warum brauchen Sie dann das JDK? Weil der Anwendungsserver JSP in Java-Servlets konvertiert und das JDK zum Kompilieren der Servlets verwenden muss. Ich bin sicher, dass es weitere Beispiele gibt.

Pablo Santa Cruz
quelle
4
Wenn wir dann externe Gläser verwenden, stellen wir diese Gläser in jre / lib / ext / bereit. Warum also?
i2ijeya
2
Es gibt einige Jars, die speziell als Erweiterungen von Java gedacht sind. Diese können und sollten in lib / ext platziert werden. Das Einfügen alter Anwendungsgläser ist jedoch nicht das Ziel dieses Verzeichnisses. Dies ist ein Missbrauch des Erweiterungsmechanismus und kann später zu Problemen führen.
Carl Smotricz
Ich habe an der JExcel-API gearbeitet und den Klassenpfad korrekt festgelegt, und es besteht immer noch das Problem. Also habe ich es im Ordner tlib / ext bereitgestellt, was danach gut funktioniert? Also, was wäre Grund?
i2ijeya
3
Ich habe keine Informationen, um ganz sicher zu sein, aber ich vermute, dass Sie entweder den Klassenpfad nicht richtig eingestellt haben oder den Klassenpfad für einen anderen Klassenlader als den, der Ihren Code verwendet hat. Was lib / ext von der Klassenpfaderweiterung unterscheidet, ist, dass lib / ext jede Java-App beeinflusst, die diese bestimmte JRE verwendet - es ist kinderleichter als das Festlegen des Klassenpfads.
Carl Smotricz
Vor ein paar Wochen hatte ich einen ziemlich massiven Fehler, der behoben wurde, indem meine Umgebungsvariablen JAVA_HOME und Path so geändert wurden, dass sie auf die JRE anstelle des JDK verweisen. In welchem ​​Fall würde eine App mit der JRE funktionieren und mit dem JDK fehlschlagen? Ich denke, ich sollte eine neue Frage eröffnen. Ein interessanter Hinweis ist, dass ab Version 1.6 die JRE in der JDK-Installation enthalten ist, jedoch auf derselben Ebene wie der JDK-Ordner entpackt wird, während sich in Version 1.5 und früher der JRE-Ordner im JDK befindet. Übrigens: Gute Antwort!
Jesse Ivy
143

Die obige Antwort (von Pablo) ist sehr richtig. Dies sind nur zusätzliche Informationen.

Die JRE ist, wie der Name schon sagt, eine Umgebung . Es handelt sich im Grunde genommen um eine Reihe von Verzeichnissen mit Java-bezogenen Dateien:

  • bin/enthält Javas ausführbare Programme. Das wichtigste ist java(und auch für Windows javaw), das die JVM startet. Es gibt hier auch einige andere Dienstprogramme, wie keytoolund policytool.
  • conf/ Enthält vom Benutzer bearbeitbare Konfigurationsdateien, mit denen Java-Experten spielen können.
  • lib/hat eine große Anzahl von unterstützenden Dateien: einige .jars, Konfigurationsdateien, Eigenschaftendateien, Schriftarten, Übersetzungen, Zertifikate usw. - alle "Details" von Java. Das wichtigste ist moduleseine Datei, die die .classDateien der Java-Standardbibliothek enthält .
  • Ab einer bestimmten Ebene muss die Java-Standardbibliothek nativen Code aufrufen. Zu diesem Zweck enthält die JRE einige .dll(Windows) oder .dylib(macOS) oder .so(Linux) Dateien unter bin/oder lib/mit unterstützendem systemspezifischem nativem Binärcode.

Das JDK besteht auch aus einer Reihe von Verzeichnissen. Es ist eine Obermenge der JRE mit einigen Ergänzungen:

  • bin/wurde mit Entwicklungswerkzeugen erweitert. Der wichtigste von ihnen ist javac; andere schließen ein jar, javadocund jshell.
  • jmods/, das JMOD-Dateien für die Standardbibliothek enthält, wurde hinzugefügt. Mit diesen Dateien kann die Standardbibliothek verwendet werden jlink.
Carl Smotricz
quelle
1
Bedeutet das, dass ich meine Pfadvariablen auf das JDK setzen kann und das war's?
Brady
3
@Brady: Ja, ich denke schon. Das funktioniert zumindest gut für mich. Als Entwickler ignoriere ich die JRE im Wesentlichen. Wenn es spezielle Fälle gibt, in denen Sie speziell die JRE wünschen, sind mir diese nicht bekannt.
Carl Smotricz
Die JRE kann nur mit kompiliertem Java-Code arbeiten, oder?
SexyBeast
2
@Cupidvogel, da es in der JRE keinen Compiler gibt, könnte man das wohl sagen. Die JRE dient zum Ausführen von (kompiliertem) Java-Code, während das JDK Ihnen auch die Tools zur Entwicklung bietet.
Carl Smotricz
1
Im Grunde genommen enthält JDK einen Compiler (wie Javac) zum Kompilieren des Codes, ein JRE (Laufzeitsystem) zum Ausführen des kompilierten Codes und andere Tools, die nur dazu dienen sollen, das Leben des Programmierers bei der Entwicklung einfach und korrekt zu gestalten. AFAIU, hier sind nur Javac und JRE die wirklich notwendigen Werkzeuge. Warum bestehen dann oftmals Softwareinstallationen und Upgrades darauf, dass ein JDK vorhanden ist?
SexyBeast
131

Geben Sie hier die Bildbeschreibung ein

JDK ist eine Obermenge von JRE und enthält alles, was in JRE enthalten ist, sowie Tools wie die Compiler und Debugger, die für die Entwicklung von Applets und Anwendungen erforderlich sind. JRE stellt die Bibliotheken, die Java Virtual Machine (JVM) und andere Komponenten zum Ausführen von Applets und Anwendungen bereit, die in der Programmiersprache Java geschrieben sind.

Chinbold Gansukh
quelle
3
Cooles Diagramm! Ich bin ein wenig verwirrt, dass der Java-Befehl außerhalb der JRE abgebildet ist, was nicht korrekt ist. Ich verstehe nicht, warum es separate Dateien für den Java-Befehl gibt, wenn das JDK installiert ist, die mindestens in der Größe identisch sind. In welchem ​​Fall würde eine App mit der JRE funktionieren und mit dem JDK fehlschlagen? Erlebte dies vor kurzem und sollte wahrscheinlich zurückverfolgen, um zu replizieren und dem auf den Grund zu gehen ...
Jesse Ivy
104

In Laienbegriffen: JDK ist Großvater JRE ist Vater und JVM ist ihr Sohn. [dh JDK> JRE> JVM]

JDK = JRE + Entwicklungs- / Debugging-Tools

JRE = JVM + Java-Paketklassen (wie util, math, lang, awt, Swing usw.) + Laufzeitbibliotheken.

JVM = Class Loader System + Laufzeitdatenbereich + Execution Engine.

Mit anderen Worten, wenn Sie ein Java-Programmierer sind, benötigen Sie JDK in Ihrem System und dieses Paket enthält auch JRE und JVM. Wenn Sie jedoch ein normaler Benutzer sind, der gerne Online-Spiele spielt, benötigen Sie nur JRE und dieses Paket nicht JDK drin.

JVM:

Die Java Virtual Machine (JVM) ist die virtuelle Maschine, auf der die Java-Bytecodes ausgeführt werden. Die JVM versteht den Java-Quellcode nicht. Deshalb kompilieren Sie Ihre * .java-Dateien, um * .class-Dateien zu erhalten, die die für die JVM verständlichen Bytecodes enthalten. Es ist auch die Entität, die es Java ermöglicht, eine "portable Sprache" zu sein (einmal schreiben, überall ausführen). In der Tat gibt es spezifische Implementierungen der JVM für verschiedene Systeme (Windows, Linux, MacOS, siehe Wikipedia-Liste ..). Ziel ist es, dass alle mit denselben Bytecodes dieselben Ergebnisse liefern.

JDK und JRE

Um den Unterschied zwischen JDK und JRE zu erklären, lesen Sie am besten die Oracle-Dokumentation und konsultieren Sie das Diagramm:

Java Runtime Environment (JRE)

Die Java Runtime Environment (JRE) bietet die Bibliotheken, die Java Virtual Machine und andere Komponenten zum Ausführen von Applets und Anwendungen, die in der Programmiersprache Java geschrieben sind. Darüber hinaus sind zwei wichtige Bereitstellungstechnologien Teil des JRE: Java-Plug-in, mit dem Applets in gängigen Browsern ausgeführt werden können; und Java Web Start, das eigenständige Anwendungen über ein Netzwerk bereitstellt. Es ist auch die Grundlage für die Technologien der Java 2-Plattform Enterprise Edition (J2EE) für die Entwicklung und Bereitstellung von Unternehmenssoftware. Die JRE enthält keine Tools und Dienstprogramme wie Compiler oder Debugger zum Entwickeln von Applets und Anwendungen.

Java Development Kit (JDK)

Das JDK ist eine Obermenge der JRE und enthält alles, was in der JRE enthalten ist, sowie Tools wie die Compiler und Debugger, die für die Entwicklung von Applets und Anwendungen erforderlich sind.

Beachten Sie, dass Oracle nicht das einzige Unternehmen ist, das JDK bereitstellt.

JIT-Kompilierungsprozess (mit freundlicher Genehmigung der Oracle-Dokumentation)

JDK> JRE> JVM

Jaimin Patel
quelle
Wenn Sie "kompilieren" oder "Compiler" sagen, ist dies in diesem Kontext, auf den Sie sich beziehen, äußerst verwirrend: Java-Quellcode in Java-Byte-Code oder Java-Byte-Code in Maschinencode umwandeln.
OrangeSherbet
Nett! Ich mag die Analogie zwischen Großvater, Vater und Sohn. : D
Emzor
Ja, danke, es ist sehr leicht zu verstehen, wer mit diesen Begriffen nicht sehr vertraut ist.
Jaimin Patel
25

Von der offiziellen Java-Website ...

JRE (Java Runtime-Umgebung):

  • Es ist eine Implementierung der Java Virtual Machine *, die tatsächlich Java-Programme ausführt.
  • Java Runtime Environment ist ein Plug-In, das zum Ausführen von Java-Programmen benötigt wird.
  • Die JRE ist kleiner als das JDK und benötigt daher weniger Speicherplatz.
  • Die JRE kann kostenlos von heruntergeladen / unterstützt werden https://www.java.com
  • Es enthält die JVM, Core-Bibliotheken und andere zusätzliche Komponenten zum Ausführen von in Java geschriebenen Anwendungen und Applets.

JDK (Java Development Kit)

  • Es ist ein Softwarepaket, mit dem Sie Java-basierte Anwendungen entwickeln können.
  • Das Java Development Kit wird für die Entwicklung von Java-Anwendungen benötigt.
  • Das JDK benötigt mehr Speicherplatz, da es die JRE zusammen mit verschiedenen Entwicklungstools enthält.
  • Das JDK kann kostenlos von https://www.oracle.com/technetwork/java/javase/downloads/ heruntergeladen / unterstützt werden.
  • Es enthält die JRE, eine Reihe von API-Klassen, den Java-Compiler, Webstart und zusätzliche Dateien, die zum Schreiben von Java-Applets und -Anwendungen erforderlich sind.
Willst du Kaffee
quelle
23

Ein Unterschied aus Sicht des Debuggens:

Zum Debuggen in Java-Systemklassen wie String und ArrayList benötigen Sie eine spezielle Version der JRE, die mit "Debug-Informationen" kompiliert wird. Die im JDK enthaltene JRE bietet diese Informationen, die reguläre JRE jedoch nicht. Die reguläre JRE enthält diese Informationen nicht, um eine bessere Leistung zu gewährleisten.

Was sind Debugging-Informationen? Hier ist eine kurze Erklärung aus diesem Blog-Beitrag :

Moderne Compiler machen einen ziemlich guten Job beim Konvertieren Ihres High-Level-Codes mit seinen gut eingerückten und verschachtelten Steuerstrukturen und willkürlich typisierten Variablen in einen großen Stapel von Bits, die als Maschinencode (oder Bytecode bei Java) bezeichnet werden und deren einziger Zweck darin besteht um so schnell wie möglich auf der Ziel-CPU (virtuelle CPU Ihrer JVM) zu laufen. Java-Code wird in mehrere Maschinencode-Anweisungen konvertiert. Variablen werden überall hin geschoben - in den Stapel, in Register oder vollständig wegoptimiert. Strukturen und Objekte sind im resultierenden Code nicht einmal vorhanden - sie sind lediglich eine Abstraktion, die in fest codierte Offsets in Speicherpuffer übersetzt wird.

Woher weiß ein Debugger, wo er anhalten soll, wenn Sie ihn bitten, beim Eintritt in eine Funktion zu brechen? Wie schafft es es, herauszufinden, was Ihnen angezeigt werden soll, wenn Sie nach dem Wert einer Variablen fragen? Die Antwort lautet - Debuggen von Informationen.

Debugging-Informationen werden vom Compiler zusammen mit dem Maschinencode generiert. Es ist eine Darstellung der Beziehung zwischen dem ausführbaren Programm und dem ursprünglichen Quellcode. Diese Informationen werden in ein vordefiniertes Format codiert und neben dem Maschinencode gespeichert. Viele solcher Formate wurden im Laufe der Jahre für verschiedene Plattformen und ausführbare Dateien erfunden.

Steve
quelle
9

JVM, JRE, JDK - all dies ist das Rückgrat der Java-Sprache. Jede Komponente arbeitet separat. JDK und JRE existieren physisch, aber JVM ist eine abstrakte Maschine, was bedeutet, dass sie physisch nicht existiert.

JVM ist das Subsystem von JDK und JRE, mit dem der als "Bytecode" bekannte Zwischencode überprüft wird. Zunächst wird die vom Java-Compiler (javac) generierte "Klassendatei" (mit der Erweiterung .c) über den Klassenlader des JVM-Subsystems und den klassifizierten Speicherort (Klassenbereichs-, Stapel-, Heap- und PC-Register) entsprechend ihrer Verwendung geladen. Anschließend wird der gesamte Bytecode überprüft, um sicherzustellen, dass er in Java zurückgegeben wird und der gesamte Zugriff auf das Speicherzugriff durch das Netzwerk erfolgt. Danach beginnt die Arbeit des Interpreten, bei der das gesamte Programm Zeile für Zeile überprüft wird. Die Ergebnisse werden schließlich in der Konsole / im Browser / in der Anwendung über JRE (Java Runtime Environment) angezeigt.

JRE ist auch ein Subsystem von JDK, das Laufzeitfunktionen wie JVM, Klassen, ausführbare Dateien wie JAR-Dateien usw. bereitstellt.

JDK steht für Java Development Kit. Es enthält alle erforderlichen Komponenten, die in der Java-Programmierung verwendet werden, wie Klasse, Methode, Swing, AWT, Paket, Java (Interpreter), Javac (Compiler), Appletviewer (Applet Application Viewer) usw. Abschließend enthält es alle für die Entwicklung erforderlichen Dateien Anwendungen, ob eigenständig oder webbasiert.

Kanan J.
quelle
8

JRE

JRE ist eine Abkürzung für Java Runtime Environment. Es wird zur Bereitstellung der Laufzeitumgebung verwendet. Es ist die Implementierung von JVM. Es ist physisch vorhanden. Es enthält eine Reihe von Bibliotheken und andere Dateien, die JVM zur Laufzeit verwendet.

JDK

JDK ist eine Abkürzung für Java Development Kit. Es existiert physisch. Es enthält JRE + -Entwicklungswerkzeuge.

Link: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm

Wenn Sie nur Java-Programme in Ihrem Browser oder Computer ausführen möchten, installieren Sie normalerweise nur JRE. Es ist alles was du brauchst. Wenn Sie jedoch eine Java-Programmierung planen, benötigen Sie auch JDK.

Nikhil Kumar
quelle
8

JVM, JRE und JDK sind plattformabhängig, da die Konfiguration der einzelnen Betriebssysteme unterschiedlich ist. Java ist jedoch plattformunabhängig.

Java Virtual Machine (JVM) ist ein Laufzeitsystem, das Java-Bytecode ausführt.

JRE ist die Umgebung (Standardbibliotheken und JVM), die zum Ausführen von Java-Anwendungen erforderlich ist.

Das JDK enthält die Befehlszeilen-Entwicklungstools JRE plus wie Compiler und Debugger, die für die Entwicklung von Applets und Anwendungen erforderlich oder nützlich sind.

Chintan Patni
quelle
7

Hier ist eine einfache Antwort direkt von Oracle: http://docs.oracle.com/javase/7/docs/technotes/guides/

Java SE-Laufzeitumgebung (JRE)

Die JRE stellt die Bibliotheken, die virtuelle Java-Maschine und andere Komponenten bereit, die zum Ausführen von Applets und Anwendungen erforderlich sind, die in der Programmiersprache Java geschrieben sind. Diese Laufzeitumgebung kann mit Anwendungen neu verteilt werden, um sie freistehend zu machen.

Java SE Development Kit (JDK)

Das JDK enthält die Befehlszeilen-Entwicklungstools JRE plus wie Compiler und Debugger, die für die Entwicklung von Applets und Anwendungen erforderlich oder nützlich sind.

Alex
quelle
7

Wenn Sie Java-Programme ausführen, aber nicht entwickeln möchten, laden Sie die Java-Laufzeitumgebung oder JRE herunter. Wenn Sie sie entwickeln möchten, laden Sie das Java Development Kit oder JDK herunter

JDK

Das sogenannte JDK ist ein Kit, das die Dinge enthält, die zum Entwickeln und Ausführen von Java-Anwendungen erforderlich sind.

JDK wird als Entwicklungsumgebung zum Erstellen von Anwendungen, Komponenten und Applets angegeben.

JRE

Es enthält alles, was Sie zum Ausführen von Java-Anwendungen in kompilierter Form benötigen. Sie brauchen keine Bibliotheken und andere Dinge. Alle Dinge, die Sie brauchen, werden zusammengestellt.

JRE kann nicht für die Entwicklung verwendet werden, sondern nur zum Ausführen der Anwendungen.

nifCody
quelle
6

JVM (Java Virtual Machine) ist eine abstrakte Maschine. Diese Spezifikation bietet eine Laufzeitumgebung, in der Java-Bytecode ausgeführt werden kann.

JRE ist eine Abkürzung für Java Runtime Environment. Es wird zur Bereitstellung der Laufzeitumgebung verwendet. Es ist die Implementierung von JVM. Es ist physisch vorhanden. Es enthält eine Reihe von Bibliotheken und andere Dateien, die JVM zur Laufzeit verwendet

JDK ist eine Abkürzung für Java Development Kit. Es existiert physisch. Es enthält JRE + -Entwicklungswerkzeuge

Pruthvi Kumar
quelle
6

Wenn Sie ein Java-Programmierer sind, benötigen Sie JDK in Ihrem System und dieses Paket enthält auch JRE und JVM. Wenn Sie jedoch ein normaler Benutzer sind, der gerne Online-Spiele spielt, benötigen Sie nur JRE und dieses Paket enthält kein JDK .

JVM

JVM (Java Virtual Machine) ist eine abstrakte Maschine. Diese Spezifikation bietet eine Laufzeitumgebung, in der Java-Bytecode ausgeführt werden kann.

JVMs sind für viele Hardware- und Softwareplattformen verfügbar. JVM, JRE und JDK sind plattformabhängig, da die Konfiguration der einzelnen Betriebssysteme unterschiedlich ist. Java ist jedoch plattformunabhängig.

JRE

Es enthält alles, was Sie zum Ausführen von Java-Anwendungen in kompilierter Form benötigen. Sie brauchen keine Bibliotheken und andere Dinge. Alle Dinge, die Sie brauchen, werden zusammengestellt.

JRE kann nicht für die Entwicklung verwendet werden, sondern nur zum Ausführen der Anwendungen.

Java SE Development Kit (JDK)

Das JDK enthält die Befehlszeilen-Entwicklungstools JRE plus wie Compiler und Debugger, die für die Entwicklung von Applets und Anwendungen erforderlich oder nützlich sind.

(Quellen: Fragen und Antworten zu GeeksForGeeks , Überblick über die Java-Plattform )

Harita M.
quelle
Es gab Plagiate von mehreren Standorten (für die Abschnitte JVM und JDK). Bitte zitieren Sie beim nächsten Mal Ihre Quellen - es ist nicht Ihre ursprüngliche Arbeit.
Jonathan Lam
6

Ein klares Verständnis dieser Begriffe (JVM, JDK, JRE) ist wichtig, um ihre Verwendung und Unterschiede zu erfassen.

JVM Java Virtual Machine (JVM) ist ein Laufzeitsystem, das Java-Bytecode ausführt. Die JVM ist wie ein virtueller Computer, der eine Reihe kompilierter Anweisungen ausführen und Speicherorte bearbeiten kann. Wenn ein Java-Compiler Quellcode kompiliert, generiert er einen hochoptimierten Befehlssatz namens Bytecode in einer .class-Datei. Die JVM interpretiert diese Bytecode-Anweisungen und konvertiert sie zur Ausführung in maschinenspezifischen Code.

JDK Das Java Development Kit (JDK) ist eine Softwareentwicklungsumgebung, mit der Sie Java-Anwendungen entwickeln und ausführen können. Es enthält die JRE und eine Reihe von Programmiertools, z. B. einen Java-Compiler, einen Interpreter, einen Appletviewer und einen Document Viewer. Das JDK wird über die Plattformen Java SE, Java EE oder Java ME implementiert.

JRE Die Java Runtime Environment (JRE) ist Teil des JDK, das eine JVM, Kernklassen und mehrere Bibliotheken enthält, die die Anwendungsentwicklung unterstützen. Obwohl die JRE als Teil des JDK verfügbar ist, können Sie sie auch separat herunterladen und verwenden.

Zum vollständigen Verständnis können Sie meinen Blog sehen: Jdk Jre Jvm und Unterschiede

Chandra Shekhar Goka
quelle
5

jdk ist erforderlich, um Java-Code zu kompilieren und in Byte-Codes umzuwandeln, während jre für die Ausführung der Byte-Codes erforderlich ist.

Mayank Jain
quelle
5
@Noy: Es sind nicht nur sehr wenige Informationen, es enthält auch nichts, was die anderen Antworten nicht tun.
Amos M. Carpenter
5

JDK enthält die JRE plus-Befehlszeilenentwicklungstools wie Compiler und Debugger, die für die Entwicklung von Applets und Anwendungen erforderlich oder nützlich sind.

JRE ist im Grunde die Java Virtual Machine, auf der Ihre Java-Programme ausgeführt werden. Es enthält auch Browser-Plugins für die Applet-Ausführung.

JDK ist eine abstrakte Maschine. Diese Spezifikation bietet eine Laufzeitumgebung, in der Java-Bytecode ausgeführt werden kann.

Grundsätzlich sagte JVM <JRE <JDK gemäß @Jaimin Patel.

Dev
quelle
5

Einfach :

JVM ist die virtuelle Maschine, auf der Java-Code ausgeführt wird

JRE ist die Umgebung (Standardbibliotheken und JVM), die zum Ausführen von Java-Anwendungen erforderlich ist

JDK ist die JRE mit Entwicklertools und Dokumentation

ABP
quelle
4

Der Unterschied zwischen JDK und JRE besteht darin, dass JDK das Software Development Kit für Java ist, während JRE der Ort ist, an dem Sie Ihre Programme ausführen.

Samarth Shah
quelle
4

Angenommen, wenn Sie Entwickler sind, besteht Ihre Aufgabe darin, ein Programm zu entwickeln und das Programm auszuführen. Sie müssen also über eine Umgebung zum Entwickeln und Ausführen verfügen, die von JDK bereitgestellt wird.

Angenommen, wenn Sie ein Client sind, müssen Sie sich keine Gedanken über die Entwicklung machen. Sie benötigen lediglich eine Umgebung, in der Sie ein Programm ausführen und nur Ergebnisse erhalten können, die von JRE bereitgestellt wird.

JRE führt die Anwendung aus, aber JVM liest die Anweisungen Zeile für Zeile, sodass sie interpretiert werden.

JDK = JRE + Entwicklungstools

JRE = JVM + Bibliotheksklassen

Bishwas Pokharel
quelle
2

JRE

JRE ist eine Abkürzung für Java Runtime Environment. Es wird zur Bereitstellung einer Laufzeitumgebung verwendet. Es ist die Implementierung von JVM. Es existiert physisch. Es enthält eine Reihe von Bibliotheken und andere Dateien, die JVM zur Laufzeit verwendet.

Die Implementierung von JVMs wird neben Sun Micro Systems auch von anderen Unternehmen aktiv freigegeben.

Geben Sie hier die Bildbeschreibung ein

JDK

JDK ist eine Abkürzung für Java Development Kit. Es existiert physisch. Es enthält JRE + -Entwicklungswerkzeuge.

Geben Sie hier die Bildbeschreibung ein

ein Mörder
quelle
Sowohl die Informationen im Text als auch die Grafiken wurden in anderen, früheren Antworten bereitgestellt.
Karl Richter