Wat is het verschil tussen JDK en JRE?

Wat is het verschil tussen JDK en JRE?

Wat zijn hun rollen en wanneer moet ik de ene of de andere gebruiken?


Antwoord 1, autoriteit 100%

De JREis de Java Runtime-omgeving. Het is een pakket met alles wat nodig is om een gecompileerd Java-programma uit te voeren, inclusief de Java Virtual Machine (JVM), de Java Class Library, de opdracht javaen andere infrastructuur. Het kan echter niet worden gebruikt om nieuwe programma’s te maken.

De JDKis de Java Development Kit, de SDK met volledige functionaliteit voor Java. Het heeft alles wat de JRE heeft, maar ook de compiler (javac) en tools (zoals javadocen jdb). Het kan programma’s maken en compileren.

Als u alleen geïnteresseerd bent in het uitvoeren van Java-programma’s op de computer, installeert u gewoonlijk alleen de JRE. Het is alles wat je nodig hebt. Aan de andere kant, als u van plan bent wat Java-programmering te doen, moet u in plaats daarvan de JDK installeren.

Soms, zelfs als u niet van plan bent om Java-ontwikkeling op een computer uit te voeren, moet u de JDK toch hebben geïnstalleerd. Als u bijvoorbeeld een webtoepassing met JSP implementeert, voert u technisch gezien alleen Java-programma’s uit op de toepassingsserver. Waarom zou je dan de JDK nodig hebben? Omdat de applicatieserver JSP omzet in Java-servlets en de JDK moet gebruiken om de servlets te compileren. Ik weet zeker dat er meer voorbeelden zijn.


Antwoord 2, autoriteit 12%

Het antwoord hierboven (door Pablo) is zeer juist. Dit is slechts aanvullende informatie.

De JREis, zoals de naam al aangeeft, een omgeving. Het is eigenlijk een verzameling mappen met Java-gerelateerde bestanden, namelijk:

  • bin/bevat de uitvoerbare programma’s van Java. De belangrijkste is java(en voor Windows ook javaw), waarmee de JVM wordt gestart. Er zijn hier ook enkele andere hulpprogramma’s, zoals keytoolen policytool.
  • conf/bevat door de gebruiker bewerkbare configuratiebestanden waarmee Java-experts kunnen spelen.
  • lib/heeft een groot aantal ondersteunende bestanden: sommige .jars, configuratiebestanden, eigenschappenbestanden, lettertypen, vertalingen, certificaten, enz. – alle ” toeters en bellen” van Java. De belangrijkste zijn modules, een bestand dat de .class-bestanden van de Java-standaardbibliotheek bevat.
  • Op een bepaald niveau moet de Java-standaardbibliotheek gebruikmaken van native code. Voor dit doel bevat de JRE enkele .dll(Windows) of .dylib(macOS) of .so(Linux) bestanden onder bin/of lib/met ondersteunende, systeemspecifieke native binaire code.

De JDKis ook een set mappen. Het is een superset van de JRE, met enkele toevoegingen:

  • bin/is uitgebreid met ontwikkeltools. De belangrijkste daarvan is javac; andere omvatten jar, javadocen jshell.
  • jmods/, dat JMOD-bestanden bevat voor de standaardbibliotheek, is toegevoegd. Met deze bestanden kan de standaardbibliotheek worden gebruikt met jlink.

Antwoord 3, autoriteit 11%

JDK is een superset van JRE en bevat alles wat in JRE zit, plus tools zoals de compilers en debuggers die nodig zijn voor het ontwikkelen van applets en applicaties. JRE levert de bibliotheken, de Java Virtual Machine (JVM) en andere componenten om applets en applicaties uit te voeren die zijn geschreven in de programmeertaal Java.


Antwoord 4, autoriteit 8%

In lekentaal: JDK is grootvader, JRE is vader en JVM is hun zoon.
[d.w.z. JDK > JRE > JVM ]

JDK = JRE + hulpprogramma’s voor ontwikkeling/foutopsporing

JRE = JVM + Java Packages Classes (zoals util, math, lang, awt,swing etc)+runtime-bibliotheken.

JVM = Class loader system + runtime data area + Execution Engine.

Met andere woorden, als je een Java-programmeur bent, heb je JDK in je systeem nodig en dit pakket bevat ook JRE en JVM, maar als je een normale gebruiker bent die graag online games speelt, dan heb je alleen JRE en dit pakket nodig zal geen JDK bevatten.

JVM :

De Java Virtual Machine (JVM)is de virtuele machine waarop de Java-bytecodes worden uitgevoerd. De JVM begrijpt de Java-broncode niet, daarom compileert u uw *.java-bestanden om *.class-bestanden te verkrijgen die de bytecodes bevatten die begrijpelijk zijn voor de JVM. Het is ook de entiteit waarmee Java een “draagbare taal” kan zijn (één keer schrijven, overal uitvoeren). Er zijn inderdaad specifieke implementaties van de JVM voor verschillende systemen (Windows, Linux, MacOS, zie de wikipedia lijst..), het doel is dat ze met dezelfde bytecodes allemaal dezelfde resultaten geven.

JDK en JRE

Om het verschil tussen JDK en JRE uit te leggen, kunt u het beste de Oracle-documentatie lezen en het diagram raadplegen:

Java Runtime Environment (JRE)

De Java Runtime Environment (JRE)biedt de bibliotheken, de Java Virtual Machine en andere componenten om applets en applicaties uit te voeren die zijn geschreven in de programmeertaal Java. Daarnaast maken twee belangrijke implementatietechnologieën deel uit van de JRE: Java Plug-in, waarmee applets in populaire browsers kunnen worden uitgevoerd; en Java Web Start, waarmee zelfstandige toepassingen via een netwerk worden geïmplementeerd. Het is ook de basis voor de technologieën in het Java 2 Platform, Enterprise Edition (J2EE) voor de ontwikkeling en implementatie van bedrijfssoftware. De JRE bevat geen tools en hulpprogramma’s zoals compilers of debuggers voor het ontwikkelen van applets en applicaties.

Java Development Kit (JDK)

De JDK is een superset van de JRE en bevat alles wat in de JRE zit, plus tools zoals de compilers en debuggers die nodig zijn voor het ontwikkelen van applets en applicaties.

Merk op dat Oracle niet de enige is die JDK levert.

JIT-compilatieproces (met dank aan: Oracle-documentatie)

JRE >JVM”>


Antwoord 5, autoriteit 2%

Van de officiële Java-website…

JRE (Java Runtime-omgeving):

  • Het is een implementatie van de Java Virtual Machine* die Java-programma’s daadwerkelijk uitvoert.
  • Java Runtime Environment is een plug-in die nodig is voor het uitvoeren van Java-programma’s.
  • De JRE is kleiner dan de JDK en heeft dus minder schijfruimte nodig.
  • De JRE kan gratis worden gedownload/ondersteund vanaf
    https://www.java.com
  • Het omvat de JVM, Core bibliotheken en andere extra componenten om applicaties en applets geschreven in Java uit te voeren.

JDK (Java Development Kit)

  • Het is een bundel van software die u kunt gebruiken om Java-gebaseerde applicaties te ontwikkelen.
  • Java Development Kit is nodig voor het ontwikkelen van Java-toepassingen.
  • De JDK moet meer schijfruimte omdat het de JRE samen met diverse development tools bevat.
  • De JDK kan worden gedownload / vrij ondersteund
    https://www.oracle.com/technetwork/java/javase/downloads/
  • Het omvat de JRE, set van API-klassen, Java-compiler, Webstart en extra bestanden die nodig zijn om Java-applets en applicaties te schrijven.

6, Autoriteit 2%

Een verschil van een debug perspectief:

Om debug in Java-systeem klassen, zoals String en ArrayList, een speciale versie van de JRE die is gecompileerd met “debug informatie” nodig. De JRE opgenomen in de JDK biedt deze info, maar de reguliere JRE niet. Regelmatige JRE omvat niet deze info om betere prestaties te garanderen.

Wat debug informatie? Hier volgt een korte uitleg uit deze blogpost :

Moderne compilers doen behoorlijk goed werk door uw code op hoog niveau, met zijn mooi ingesprongen en geneste besturingsstructuren en willekeurig getypte variabelen, om te zetten in een grote stapel bits die machinecode wordt genoemd (of bytecode in het geval van Java), het enige doel waarvan is om zo snel mogelijk te draaien op de doel-CPU (virtuele CPU van uw JVM). Java-code wordt omgezet in verschillende machinecode-instructies. Variabelen worden alle kanten op geschoven – in de stapel, in registers of volledig geoptimaliseerd weg. Structuren en objecten bestaan niet eens in de resulterende code – ze zijn slechts een abstractie
dat wordt vertaald naar hardgecodeerde offsets in geheugenbuffers.

Dus hoe weet een debugger waar hij moet stoppen als je hem vraagt om te breken bij het openen van een functie? Hoe slaagt het erin om te vinden wat het je moet laten zien als je het om de waarde van een variabele vraagt?
Het antwoord is: foutopsporingsinformatie.

Debugging-informatie wordt samen met de machinecode door de compiler gegenereerd. Het is een weergave van de relatie tussen het uitvoerbare programma en de originele broncode. Deze informatie wordt gecodeerd in een vooraf gedefinieerd formaat en naast de machinecode opgeslagen. Veel van dergelijke formaten zijn in de loop der jaren uitgevonden voor verschillende platforms en uitvoerbare bestanden.


Antwoord 7

JVM, JRE, JDK – dit zijn allemaal de ruggengraat van de Java-taal. Elk onderdeel werkt afzonderlijk. JDK en JRE bestaan fysiek, maar JVM is een abstracte machine, wat betekent dat het niet fysiek bestaat.

JVM is het subsysteem van JDK en JRE dat wordt gebruikt om de tussencode te controleren die bekend staat als “bytecode”. Het laadt eerst het “Class-bestand” (met .c extensie) gegenereerd door de Java-compiler (Javac) via JVM Subsystem ClassLoader en geclassificeerde geheugenlocatie (klassegebied, stapel, heap en pc-registers) volgens hun gebruik. Dan controleert het alle byTecode om ervoor te zorgen dat deze wordt geretourneerd in Java en alle toegang tot het geheugen toegankelijkheid door het netwerk. Het werk van de tolk begint daarna waar het de hele programmaregel per regel controleert. De resultaten worden eindelijk weergegeven in de console / browser / applicatie via JRE (Java Runtime Environment) welke runtime-faciliteiten.

Jre is ook een subsysteem van JDK, dat runtime-faciliteiten biedt zoals JVM, klassen, uitvoerbare bestanden zoals .jar-bestand, enz.

JDK staat voor Java Development Kit. Het bevat alle benodigde componenten die worden gebruikt in Java-programmering zoals klasse, methode, swing, awt, pakket, java (tolk), javac (compiler), appletviewer (applet applicatie viewer), enz. Om te concluderen, bevat het elk bestand dat nodig is voor de ontwikkeling Toepassingen, ongeacht of niet-alone of webgebaseerd.


8

JRE

JRE is een acroniem voor Java Runtime Environment.Het wordt gebruikt om runtime-omgeving te bieden. Het is de implementatie van JVM.it fysiek bestaat. Het bevat een reeks bibliotheken + andere bestanden die JVM gebruikt bij runtime.

JDK

JDK is een acroniem voor Java Development Kit.it fysiek bestaat. Het bevat JRE + Development-tools.

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

Als u alleen geïnteresseerd bent in het uitvoeren van Java-programma’s in uw browser of computer, installeert u gewoonlijk alleen JRE. Het is alles wat je nodig hebt. Aan de andere kant, als je van plan bent om Java te programmeren, heb je ook JDK nodig.


Antwoord 9

Hier is een eenvoudig antwoord rechtstreeks van Oracle
http://docs.oracle.com/javase/7/docs/technotes/guides/

Java SE Runtime Environment (JRE)

De JRE biedt de bibliotheken, de virtuele Java-machine en andere componenten die u nodig hebt om applets en toepassingen uit te voeren die zijn geschreven in de programmeertaal Java. Deze runtime-omgeving kan opnieuw worden gedistribueerd met applicaties om ze vrijstaand te maken.

Java SE-ontwikkelkit (JDK)

De JDK bevat de JRE plus opdrachtregelontwikkeltools zoals compilers en debuggers die nodig of nuttig zijn voor het ontwikkelen van applets en applicaties.


Antwoord 10

JVM, JRE en JDK zijn platformafhankelijk omdat de configuratie van elk besturingssysteem anders is. Maar Java is platformonafhankelijk.

Java Virtual Machine (JVM) is een runtime-systeem dat Java-bytecode uitvoert.

JRE is de omgeving (standaardbibliotheken en JVM) die nodig is om Java-applicaties uit te voeren.

De JDK bevat de JRE plus opdrachtregelontwikkeltools zoals compilers en debuggers die nodig of nuttig zijn voor het ontwikkelen van applets en applicaties.


Antwoord 11

JVM (Java Virtual Machine) is een abstracte machine. Het is een specificatie die een runtime-omgeving biedt waarin java bytecode kan worden uitgevoerd.

JRE is een acroniem voor Java Runtime Environment. Het wordt gebruikt om een runtime-omgeving te bieden. Het is de implementatie van JVM. Het bestaat fysiek. Het bevat een reeks bibliotheken + andere bestanden die JVM tijdens runtime gebruikt

JDK is een acroniem voor Java Development Kit.it fysiek bestaat. Het bevat JRE + Development Tools


12

Als u Java-programma’s wilt uitvoeren, maar deze niet ontwikkelt, downloadt u de Java Run-Time Environment of JRE. Als u ze wilt ontwikkelen, downloadt u de Java Development Kit of JDK

JDK

Laten we JDK genoemd, is een set, waaronder wat zijn die dingen nodig zijn om Java-applicaties te ontwikkelen en uit te voeren.

JDK wordt gegeven als ontwikkelingsomgeving voor het bouwen van toepassingen, component S en applets.

JRE

Het bevat alles wat u nodig hebt om Java-toepassingen in het gecompileerde formulier uit te voeren. Je hebt geen bibliotheken en andere dingen nodig. Alle dingen die je nodig hebt, zijn samengesteld.

JRE is niet gebruikt voor ontwikkeling, alleen gebruikt voor het uitvoeren van de applicaties.


13

gewoon:

JVM is de Java-code van de virtuele machine uitgevoerd op

JRE is de omgeving (standaard bibliotheken en jvm) vereist om Java-applicaties

uit te voeren

JDK is de JRE met ontwikkelaarstools en documentatie


14

Een duidelijk inzicht in deze voorwaarden (JVM, JDK, JRE) zijn essentieel om hun gebruik en verschillen te begrijpen.

jvm
Java Virtual Machine (JVM) is een runtime-systeem dat Java Bytecode uitvoert. De JVM is als een virtuele computer die een reeks gecompileerde instructies kan uitvoeren en geheugenlocaties kan manipuleren. Wanneer een Java-compiler broncode compileert, genereert het een zeer geoptimaliseerde reeks instructies die Bytecode in een .klasse bestand wordt genoemd. De JVM interpreteert deze bytecode-instructies en converteert ze naar machineverklopingscode voor uitvoering.

jdk
De Java Development Kit (JDK) is een software-ontwikkelingsomgeving die u kunt gebruiken om Java-toepassingen te ontwikkelen en uit te voeren. Het bevat de JRE en een set programmeergereedschap, zoals een Java-compiler, tolk, appletviewer en documentviewer. De JDK wordt geïmplementeerd via de Java SE, Java EE of Java Me-platforms.

jre
De Java Runtime Environment (JRE) maakt deel uit van de JDK die een JVM-, kernklassen en verschillende bibliotheken die applicatieontwikkeling ondersteunen. Hoewel de JRE beschikbaar is als onderdeel van de JDK, kunt u deze ook afzonderlijk downloaden en gebruiken.

Voor volledige begrip kun je mijn blog zien: JDK JRE JVM en verschillen


15

JDK is nodig om op code te compileren en de Java-code naar bytecodes te converteren terwijl JRE nodig is voor het uitvoeren van de bytecodes.


16

Het verschil tussen JDK en JRE is dat JDK de softwareontwikkelingskit voor Java is terwijl JRE de plaats is waar u uw programma’s uitvoert.


17

Stel dat als u een ontwikkelaar bent, dan is uw rol om programma te ontwikkelen en het programma uit te voeren. Dus je moet een omgeving hebben voor het ontwikkelen en uitvoeren, dat wordt geleverd door JDK.

Stel dat, als u een klant bent, dan hoeft u zich geen zorgen te maken over ontwikkelen.Geweld dat u nodig hebt, is, een omgeving om het programma uit te voeren en alleen resultaat te krijgen, dat wordt verstrekt door JRE.

JRE voert de toepassing uit, maar JVM leest de instructies regel per regel, dus de interpreter.

JDK = JRE + Development Tools

JRE=JVM+Bibliotheekklassen


Antwoord 18

JRE

JRE is een acroniem voor Java Runtime Environment. Het wordt gebruikt om een runtime-omgeving te bieden. Het is de implementatie van JVM. Het bestaat fysiek. Het bevat een reeks bibliotheken + andere bestanden die JVM tijdens runtime gebruikt.

Implementatie van JVM’s wordt ook actief vrijgegeven door andere bedrijven naast Sun Micro Systems.

JDK

JDK is een acroniem voor Java Development Kit. Het bestaat fysiek. Het bevat JRE + ontwikkeltools.

Other episodes