(更清楚)
您可以在 Oracle 官方网站上找到 JRE 8、JRE 9 和 JRE 10(分别单击)。 但是JRE 11在哪里?!
此外,JDK 11 不包含 JRE。我期待 JRE 与 JDK 一起安装。
最终用户需要安装JDK吗?
我从其官方网站下载并安装了 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 机器上,JDK 8 和 JDK 11 之间还有另外两个区别。
独立的
JRE
与 JDK
并排,如您所见:
> dir /b "C:\Program Files\Java"
jdk-11.0.1
jdk1.8.0_181
jre1.8.0_181
在路径
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
。此文件夹包含 JDK 8 的 3 个可执行文件(不是 link!):
> 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的发行说明有以下句子:
在此版本中,不再提供 JRE 或服务器 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