Waar is JRE 11?

(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.rpmals ..._windows-x64_bin.exegeï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.

  1. Een op zichzelf staande JREnaast JDKzoals je kunt zien:

    > dir /b "C:\Program Files\Java"            
    jdk-11.0.1   
    jdk1.8.0_181 
    jre1.8.0_181 
    
  2. 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 omgevingsvariabele PATH) naar javapath_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

Other episodes