${java.home}/LICENSE
Oracle Java 7 和 8 包含一个文件 ${java.home}/LICENSE。对于 1.7.0_80 和 1.8.0_152,内容为:
请参考http://java.com/license
在 6 次 HTTP 重定向之后,当前指向 https://www.oracle.com/downloads/licenses/binary-code-license.html,其中描述了“Oracle 二进制代码许可Java SE 平台产品和 JavaFX 协议。”
${java.home}/LICENSE 在 Oracle Java 1.8.0_221 中说:
请参考https://java.com/bc_license
经过 3 次 HTTP 重定向后,当前指向 https://www.oracle.com/downloads/licenses/javase-license1.html,其中描述了“Oracle 技术网络许可Oracle Java SE 协议”。
${java.home}/LICENSE 在 Oracle Java 1.8.0_251 中说:
请参考https://java.com/otnlicense
Oracle 和 OpenJDK Java 版本 9+ 不提供 ${java.home}/LICENSE。
${java.home}/release
所有 Java 版本都有一个文件 ${java.home}/release,对于 Oracle Java 11,该文件如下所示:
BUILD_TYPE="commercial"
IMPLEMENTOR="Oracle Corporation"
...
这适用于 Ubuntu 的 openjdk-11-jre-headless 包(版本 11.0.4+11-1ubuntu2~18.04.3):
IMPLEMENTOR="Ubuntu"
...
对于 Ubuntu 软件包,没有 BUILD_TYPE 值。
从 java.net 下载的其他结果:
jre-8u221-linux-i586.tar.gz 和 jdk-8u251-linux-i586.tar.gz :
BUILD_TYPE="commercial"
jdk-9+181_linux-x64_ri.zip:
IMPLEMENTOR="N/A"
serverjre-9_linux-x64_bin.tar.gz(java -version 说build 9+181):
BUILD_TYPE="commercial"
IMPLEMENTOR="Oracle Corporation"
openjdk-10+44_linux-x64_bin_ri.tar.gz:
IMPLEMENTOR="Oracle Corporation"
JAVA_VERSION_DATE="2018-03-20"
jdk-10_linux-x64_bin_ri.tar.gz(java -version 说build 10+44):
IMPLEMENTOR="Oracle Corporation"
JAVA_VERSION_DATE="2018-03-20"
openjdk-11+28_linux-x64_bin.tar.gz:
IMPLEMENTOR="Oracle Corporation"
JAVA_VERSION_DATE="2018-09-25"
jdk-11.0.4_linux-x64_bin.tar.gz:
BUILD_TYPE="commercial"
IMPLEMENTOR="Oracle Corporation"
JAVA_VERSION_DATE="2019-07-16"
openjdk-12.0.2_linux-x64_bin.tar.gz:
IMPLEMENTOR="Oracle Corporation"
JAVA_VERSION_DATE="2019-07-16"
通过 oracle-java7-installer 和 oracle-java8-installer 包安装在 Ubuntu 上的 Oracle Java 7 和 8 还提供${java.home}/release,包含:
BUILD_TYPE="commercial"
${java.home}/legal/java.base/LICENSE
Java 9+ 发行版包含一个${java.home}/legal 目录。检查${java.home}/legal/java.base/LICENSE:
- openjdk-9+181_linux-x64_ri.zip:GPLv2 + 类路径异常
- jdk-9+181_linux-x64_ri.zip:GPLv2 + 类路径异常
- serverjre-9_linux-x64_bin.tar.gz: "请参考http://java.com/license"
- openjdk-10+44_linux-x64_bin_ri.tar.gz:GPLv2 + 类路径异常
- jdk-10_linux-x64_bin_ri.tar.gz:GPLv2 + 类路径异常
- openjdk-11+28_linux-x64_bin.tar.gz:GPLv2 + 类路径异常(
legal/*/LICENSE 相同)
- jdk-11.0.4_linux-x64_bin.tar.gz:“请参考https://java.com/otnlicense”(
legal/*/LICENSE相同)
- openjdk-12.0.2_linux-x64_bin.tar.gz:GPLv2 + 类路径异常
Ubuntu 的 openjdk-11-jre-headless 11.0.4+11-1ubuntu2~18.04.3 不提供${java.home}/legal/*/LICENSE。
总结
奇怪的是,${java.home}/LICENSE 中的“https://java.com/bc_license”很好地表明了 OTN 许可的 JRE。我认为对于 2019 年 3 月 16 日之后的 Oracle 版本,LICENSE 中的 URL 从“http://java.com/license”更改为“https://java.com/bc_license”是一个错误;他们应该将其更改为“https://java.com/otnlicense”。他们的补救措施是让https://java.com/bc_license 重定向到 OTN 文档。
当${java.home}/legal/java.base/LICENSE 包含“请参考https://java.com/otnlicense”时,会有一个强烈的提示。
较弱的提示是以下组合:
-
IMPLEMENTOR="Oracle Corporation",
-
BUILD_TYPE="commercial",和
-
JAVA_VERSION_DATE="2019-04-16" 或更高版本。
欢迎提供更可靠的答案!