JRE 11在哪里?

85

更新:

(为了更加明确)

您可以在Oracle官网上找到JRE 8JRE 9JRE 10(点击每个链接),但是JRE 11在哪里?!

此外,JDK 11不包括JRE。我原本以为JRE会随着JDK一起安装。

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


问题的原始版本:

我从官方网站下载并安装了Oracle JDK 11. 我在Linux机器上安装了 ..._linux-x64_bin.rpm,在Windows机器上安装了..._windows-x64_bin.exe。但我看到了一个意料之外的东西! 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 机器上,JDK 8 和 JDK 11 之间还有另外两个区别。

  1. 就像你看到的那样,在 JDK 旁边还有一个独立的 JRE

    > 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 中:

  3. > 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。该文件夹包含JDK 8的3个可执行文件(不是链接!):

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

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

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


13
你可能会更惊讶地知道,除了用于开发/测试目的外,Oracle JDK现在已不再免费。最好转向OpenJDK。 - rustyx
2
然而,OpenJDK的好处是它几乎可以做到OracleJDK所能做的一切。如果您能想出在OpenJDK中无法完成的任务,我会很感兴趣。以前,JavaFX是需要OracleJDK才能使用的功能之一。现在,它已经完全与任何JDK / JRE分离,并且您可以使用类似于Maven或Gradle的构建工具将其捆绑到您的程序中。 - Max
1
采纳@rustyx的有用建议。OpenJDK JRE的链接在这里 - questionto42
1
Oracle JDK允许商业使用在哪个版本之前停止了?我认为从一开始就只允许用于开发和测试。 - Satish Patro
2
@SatishPatro Oracle在其Oracle JDK产品的不同版本中使用了不同的许可条款。一种许可需要支付部署费用,另一种许可要求在应用程序中捆绑JDK时支付费用。请务必仔细阅读您获取的任何JDK的许可证。此外,您还可以选择其他JDK供应商,每个供应商都有自己的条款:Azul Systems、Microsoft、Amazon、Bellsoft、Adoptium、SAP、Red Hat、IBM等等。 - Basil Bourque
显示剩余3条评论
1个回答

80
整个Java 11的结构已经改变。Java现在是一个模块化平台,在其中您可以创建自己的“JRE”分发,仅包括您运行应用程序所需的模块。
发布说明位于https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html,其中提到:
“在此版本中,不再提供JRE或Server JRE。仅提供JDK。用户可以使用jlink创建更小的自定义运行时。”
关于jlink的文档:https://docs.oracle.com/en/java/javase/11/tools/jlink.html 另一篇相关文章:https://medium.com/codefx-weekly/is-jlink-the-future-1d8cb45f6306

18
哦我的天啊......这是什么鬼...... - gumuruh
但是,如果您的应用程序使用的JAR文件不是模块化的,则jlink会出现问题,因为它仅适用于现代模块化JAR文件。它无法处理从旧的非模块化JAR文件创建的“自动JAR文件”,这些文件被放置在--module-path上。幸运的是,看起来您可以从https://adoptium.net/temurin/releases/下载开放式JRE。 - abulka
JRE的链接已失效。 - J'e
截至2023年8月,有几家公司提供JRE产品。其中包括Azul SystemsAdoptium等等。请查看亚马逊、贝尔软件、微软、甲骨文、SAP、红帽、IBM等其他公司。 - Basil Bourque

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接