JRE 11 在哪里?

Where is JRE 11?

更新:

更清楚

你可以在Oracle官网上找到JRE 8, JRE 9 and JRE 10(每个都点一下)。 但是 JRE 11 在哪里?!

此外,JDK 11 不包含 JRE。我期待 JRE 与 JDK.

一起安装

我们应用的最终用户是否需要安装 JDK?


问题的原始版本:

我从 official site 下载并安装了 Oracle JDK 11。我同时安装了 ..._linux-x64_bin.rpm..._windows-x64_bin.exe(第一个安装在 Linux 机器上,第二个安装在 Windows 机器上)。但是我看到了意想不到的事情! JRE 在哪里?

这是CentOS 7的安装路径截图,可以看到没有jre文件夹:

# ls /usr/java/jdk-11.0.1/
bin  conf  include  jmods  legal  lib  README.html  release

关于 Oracle JDK 8 的相同快照(具体参见 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

Windows 机器上的相同快照:

> 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 

在Windows机器上,JDK8和JDK11之间还有两个区别。

  1. 一个独立的 JREJDK 如你所见:

    > dir /b "C:\Program Files\Java"            
    jdk-11.0.1   
    jdk1.8.0_181 
    jre1.8.0_181 
    
  2. 在路径 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 
    ...
    

    如您所见,javapath(即在 PATH 环境变量中)指向 javapath_target_3015921。此文件夹包含 3 个 JDK 8 的可执行文件(不是 links!):

    > dir /b "C:\Program Files (x86)\Common Files\Oracle\Java\javapath" 
    java.exe                         
    javaw.exe                        
    javaws.exe 
    

最后,我在网上搜索了一个独立的 JRE,发现它不存在!

我们程序的最终用户需要安装JDK吗?

Java 11 的整个结构已经改变。 Java 现在是一个模块化平台,您可以在其中创建自己的 "JRE" 发行版,其中包含 运行 您的应用程序所需的特定模块。

https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html 的发行说明有以下句子:

In this release, the JRE or Server JRE is no longer offered. Only the JDK is offered. Users can use jlink to create smaller custom runtimes.

关于 jlink 的文档:https://docs.oracle.com/en/java/javase/11/tools/jlink.html

还有另一篇关于它的文章:https://medium.com/codefx-weekly/is-jlink-the-future-1d8cb45f6306