(om duidelijkerte zijn)
Je kunt JRE 8vinden, JRE 9en JRE 10op de officiële website van Oracle (klik op elk) . Maar waar is JRE 11?!
JDK 11 bevat ook geen JRE. Ik verwachtte dat JRE met JDK zou worden geïnstalleerd.
Moeten eindgebruikers van onze apps JDK installeren?
ORIGINELE versie van de vraag:
Ik heb Oracle JDK 11 gedownload en geïnstalleerd vanaf de officiële website. Ik heb zowel ..._linux-x64_bin.rpm
als ..._windows-x64_bin.exe
geïnstalleerd (eerst op een Linux-machine en ten tweede op een Windows-computer). Maar ik zag iets onverwachts! Waar is JRE?
Dit is een momentopname van het installatiepad op CentOS 7. Zoals je kunt zien is er geen map JRE
:
# ls /usr/java/jdk-11.0.1/
bin conf include jmods legal lib README.html release
Dezelfde momentopname over Oracle JDK 8 (zie speciaal de map JRE
):
# ls /usr/java/jdk1.8.0_191-amd64/
bin lib src.zip
COPYRIGHT LICENSE THIRDPARTYLICENSEREADME-JAVAFX.txt
include man THIRDPARTYLICENSEREADME.txt
javafx-src.zip README.html
jre release
Dezelfde snapshots op Windows-computer:
> dir /b "C:\Program Files\Java\jdk-11.0.1"
bin
conf
COPYRIGHT
include
jmods
legal
lib
README.html
release
> dir /b "C:\Program Files\Java\jdk1.8.0_181"
bin
COPYRIGHT
include
javafx-src.zip
jre
lib
LICENSE
README.html
release
src.zip
THIRDPARTYLICENSEREADME-JAVAFX.txt
THIRDPARTYLICENSEREADME.txt
Op een Windows-machine zijn er nog twee andere verschillen tussen JDK 8 en JDK 11.
-
Een op zichzelf staande
JRE
naastJDK
zoals je kunt zien:> dir /b "C:\Program Files\Java" jdk-11.0.1 jdk1.8.0_181 jre1.8.0_181
-
In pad
C:\Program Files (x86)\Common Files\Oracle\Java
:> dir "C:\Program Files (x86)\Common Files\Oracle\Java" ... ... 14 java.settings.cfg ... <JUNCTION> javapath [C:\Program Files (x86)\Common Files\Oracle\Java\javapath_target_3015921] ... <DIR> javapath_target_3015921 ...
Zoals je ziet verwijst
javapath
(dat is in de omgevingsvariabelePATH
) naarjavapath_target_3015921
. Deze map bevat 3 uitvoerbare bestanden van JDK 8 (die geen links zijn!):> dir /b "C:\Program Files (x86)\Common Files\Oracle\Java\javapath" java.exe javaw.exe javaws.exe
Eindelijk heb ik op internet gezocht naar een zelfstandige JRE en ontdekte dat deze niet bestaat!
Moeten eindgebruikers van onze programma’s JDK installeren?
Antwoord 1, autoriteit 100%
De hele structuur met Java 11 is veranderd. Java is nu een modulair platform, waar u uw eigen “JRE”-distributie kunt maken met specifiek de modules die u nodig hebt om uw toepassing uit te voeren.
De release-opmerkingen op https://www. oracle.com/technetwork/java/javase/11-relnote-issues-5012449.htmlhebben de volgende zin:
In deze release wordt de JRE of Server JRE niet langer aangeboden. Alleen de
JDK wordt aangeboden. Gebruikers kunnen jlink gebruiken om kleinere aangepaste runtimes te maken.
Documentatie over jlink: https://docs.oracle. com/en/java/javase/11/tools/jlink.html
En nog een artikel hierover: https://medium.com/ codefx-weekly/is-jlink-the-future-1d8cb45f6306