那些想要在基于这些的 Ubuntu、Debian 和 Linux 发行版(如 Linux Mint、Pop!_OS 等)上安装最新的 Oracle Java 16(最近发布)的人现在可以使用 Linux Uprising PPA 来实现。 Oracle JDK 16 将至少每季度收到两次更新,然后是 2021 年 9 月的 Oracle JDK 17。
访问发布公告,了解 Oracle Java 16 的新增功能。
我想指出的是,我不建议使用 Oracle Java,但是我将它提供给需要它的人。 Oracle Java 使用从 Java 11 开始的商业许可,允许免费下载和使用它,仅用于开发和测试,但需要支付费用才能在生产中使用。 除了 Oracle Java,您还可以使用开源 JDK 构建,例如由 AdoptOpenJDK 或 Zulu OpenJDK 提供的构建。
[[Edit]]Oracle Java 17 LTS 最近已发布。 我建议你安装它而不是 Oracle Java 16,它可能很快就会变得不可用。
此 Oracle Java 16 安装程序基于 Web Upd8 Java 包(因此版权归其原始创建者所有),经过少量修改,并且不包含任何 Oracle Java 二进制文件。 相反,它会自动下载、安装(进行一些调整,例如更好的字体渲染、添加应用程序菜单条目等)并可选择将 Oracle Java 16 设置为默认 Java(运行更新替代品、导出 JAVA_HOME 环境变量等)在你的系统上。
Oracle 确实为 Oracle Java 提供了 DEB 包,但是,这些包只是将 Java 二进制文件复制到 /usr/lib/jvm
, 不做任何其他事情,所以和自己把 Java 目录复制到那个位置完全一样。
PPA 为 x64 和 aarch64 架构提供 Oracle JDK 16,这是 Oracle 提供最新 Java 16 的仅有的 2 个架构。
您可能还感兴趣:如何使用 SDKMAN 在多个 Java 版本之间安装/切换
如何使用 APT PPA 存储库在 Ubuntu、Debian、Linux Mint、Pop!_OS 或 Zorin Os 上安装 Oracle JDK 16
添加 Oracle Java 16 PPA 存储库并使用以下命令更新 Ubuntu、Linux Mint、Pop!_OS 或 Zorin Os 上的软件源:
sudo add-apt-repository ppa:linuxuprising/java
sudo apt update
添加 Oracle Java 16 PPA 存储库(及其密钥)并使用以下命令更新 Debian 和其他基于 Debian(但不是基于 Ubuntu 和 Ubuntu 的)Linux 发行版上的软件源:
su -
echo "deb https://ppa.launchpad.net/linuxuprising/java/ubuntu focal main" | tee /etc/apt/sources.list.d/linuxuprising-java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 73C3DB2A
apt-get update
exit
现在,您可以基于这些在 Debian/Ubuntu 和 Linux 发行版上安装 Oracle JDK 16:
- 安装 Oracle JDK 16 并将其设为默认 JDK 版本:
sudo apt install oracle-java16-installer --install-recommends
- 安装但不要将 Oracle JDK 16 设为默认 JDK 版本:
sudo apt install oracle-java16-installer --no-install-recommends
您可以控制 Oracle JDK 16 是否是默认的 JDK 版本或借助 oracle-java16-set-default
包裹。 如果安装了这个,Oracle JDK 16 被设置为默认值; 删除此包,因此 Oracle Java 16 未设置为默认值(除非它是系统上唯一的 Java 版本)。
此包被设置为 Oracle Java 16 安装程序的推荐包,这就是安装的原因 oracle-java16-installer
和 --install-recommends
还安装 oracle-java16-set-default
.
要检查系统上将哪个 Java 版本设置为默认版本,您可以运行 java -version
和/或 javac -version
. 显示 Oracle Java 16 设置为默认值的输出示例:
$ java -version
java version "16" 2021-03-16
Java(TM) SE Runtime Environment (build 16+36-2231)Java HotSpot(TM) 64-Bit Server VM (build 16+36-2231, mixed mode, sharing)
$ javac -version
javac 16
在某些情况下,安装程序可能无法从 Oracle 下载 Oracle Java 16 .tar.gz 存档。 这有多种可能的问题:您位于阻止这种情况的路由器/防火墙后面,您的 Internet 连接在下载过程中出现故障等。
要解决此问题,您可以通过其他方式从 Oracle 自己下载此文件,例如通过去朋友家、使用带有代理的 Web 浏览器等,然后将下载的 Oracle Java 16 .tar.gz 文件放入 /var/cache/oracle-jdk16-installer
(如果此文件夹不存在,请以 root 身份创建),然后安装 oracle-java16-installer
如上所述,来自 Linux Uprising PPA 的软件包。
这样,Oracle Java 16 安装程序使用本地存档而不是尝试自行下载。 确保从 PPA 下载的 Oracle Java 16 .tar.gz 和 Oracle Java 安装程序包都是相同的版本,否则这将不起作用。
您可能还感兴趣:适用于 Ubuntu、Debian 或 Linux Mint 的新 Oracle Java 11 安装程序(使用本地 Oracle Java .tar.gz)
如何自动接受 Oracle Java 16 许可证
下载和安装 Oracle Java 16 需要用户接受许可。 在某些情况下,例如在自动脚本中使用它时,您可能希望使用命令自动接受许可证。 您可以使用以下方法做到这一点:
echo oracle-java16-installer shared/accepted-oracle-license-v1-2 select true | sudo /usr/bin/debconf-set-selections
如果这不起作用,也试试这个命令:
echo oracle-java16-installer shared/accepted-oracle-licence-v1-2 boolean true | sudo /usr/bin/debconf-set-selections