在编程世界中,Java 一直是最顶尖的编程语言之一。Java 是一种高级编程语言,遵循面向对象编程系统的概念。它也是一种平台无关的语言,可以生成跨平台的应用程序。Java 无处不在 – 银行和交易、Web 框架、游戏(Minecraft),甚至移动操作系统(Android)。
在本指南中,我们将引导您完成在 CentOS 和 Fedora.
前提条件
执行系统级更改需要 sudo 权限。但是,建议在执行这些操作时使用具有 sudo 权限的非 root 用户。您可以参考我们的教程来了解如何使用 sudoers 文件管理用户的 sudo 权限。有关深入的 CentOS 服务器安装和配置说明,请查看本教程.
Java 变体
有几种不同的 Java 版本可用:
- 标准版 - Java SE
- 企业版 - Java EE
- 微型版 - Java ME
虽然它们在行业中都占有一席之地,但大多数 Java 应用程序都是使用 Java SE 开发的。本指南将演示如何安装 Java SE。
Java SE 有两种类型的包:
- JRE:代表 Java 运行环境(Java Runtime Environment)。它是执行任何 Java 应用程序所必需的。JRE 包由必要的二进制文件和库组成,这些文件和库提供了 JVM(Java 虚拟机)和实用程序。
- JDK:代表 Java 开发工具包(Java Development Kit)。JDK 包含了开发和调试 Java 应用程序所需的所有必要工具和库。任何 JDK 包也都会包含一份 JRE 的副本。
Java 有两种主要的实现方式:Oracle Java 和 OpenJDK。OpenJDK 是一个开源项目,构成了 Java 本身的主要基础。Oracle Java 在 OpenJDK 的基础上实现,并包含一些专有代码。
这两种 Java 实现具有不同的许可政策。自 Java 9 以来,OpenJDK 版本根据 GPLv2+CPE (带有 Classpath 异常的 GPLv2)进行许可。另一方面,Oracle Java 是根据 Java SE 的 OTN 许可协议.
许可政策的变化在 Java 社区中引起了轩然大波。从那时起,出现了多种 OpenJDK 变体:AdoptOpenJDK, GraalVM, Liberica等。
选择哪个 Java SE?
面对所有这些可用的选项,要决定哪种 Java 变体适合您可能会让人不知所措。本节将讨论所有这些选项的适用范围。
- JDK 对比 JRE
这是一个相当直接的选择。在大多数情况下,JDK 是供 Java 开发人员使用的。您是否想要学习或开发 Java 应用程序?如果是,那么 JDK 是不二之选。
如果您只需要运行 Java 程序,那么选择 JRE 即可。安装 JDK 也可以,但从效率的角度来看,这是多余的。
- OpenJDK 对比 Oracle
OpenJDK 和 Oracle Java 都是免费提供的。但是,根据部署环境的不同,Oracle Java 可能会收费。定价与 Java 的发布周期有关。每六个月就会发布一个新版本的 Java。随着每个新版本的发布,旧版本将不会在公共代码库中获得任何补丁、错误修复或改进。
至于部署环境,只要用于教育目的和个人使用, Oracle Java 就是免费的。当涉及到企业生产环境时,它可能会收费。如果公司需要对旧版本 Java 的支持,Oracle 会提供有偿的长期支持。
您是仅将 Java 用于个人用途的个人吗?那么两者都适合您。您是否有兴趣为您的公司/企业部署 Java?Oracle Java 是付费提供的。或者,您可以看看 OpenJDK 的各种变体。原版 OpenJDK 不提供支持,但各种 OpenJDK 变体(AdoptOpenJDK、Amazon Corretto、Azul Zulu 等)免费为所有主要版本提供长期支持。
- OpenJDK 变体
在功能方面,所有 OpenJDK 版本提供的体验几乎相同。通常是各种微小(以及一些重大)的功能差异区分了每个 OpenJDK 版本。在补丁和错误修复方面,原版 OpenJDK 遵循与 Oracle Java 类似的模式。一旦发布了新的 Java 版本,旧版本将不会收到任何未来的更新。然而,旧的 OpenJDK 版本仍然可以免费使用。
这就是其他版本的用武之地。这些 OpenJDK 版本通常比 Oracle 官方提供更长时间的旧版本和新版本支持。其中一些项目得到了行业巨头的赞助。
安装 Java
在撰写本文时,最新的 LTS 版本是 Java 11。建议使用 Java LTS(长期支持)版本,因为它将获得最长时期的更新。Java 11 LTS OpenJDK 版本计划支持到 2030 年。
-
安装 Oracle JDK
Oracle JDK 16
Oracle 提供了适用于 Linux 的可安装包。来自 Oracle 的 JDK 提供了 DEB、RPM 和 TAR.GZ 包。因为我们使用的是 CentOS 和 Fedora,所以我们的目标是 Oracle JDK RPM 包。
Oracle 仅提供最新的 JDK 版本供公开下载。对于旧版本,您需要一个 Oracle 帐户才能访问它们。在撰写本文时,最新的 Java 版本是 Java 16。首先,请查看 Oracle JDK 16 下载页面:

要在 CentOS 上安装 Java 包,请运行以下命令:
|
1 |
sudo yum localinstall jdk-16.0.1_linux-x64_bin.rpm |

要在 Fedora 上安装 Java 包,请运行以下命令:
|
1 |
sudo rpm -Uvh --nodeps ./jdk-16.0.1_linux-x64_bin.rpm |
Oracle JDK 11
请查看 Oracle JDK 11 下载页面。然后,下载 RPM 包。现在是安装该包的时候了。要在 CentOS 上安装 RPM 包,请运行以下命令:
|
1 |
sudo yum localinstall jdk-11.0.11_linux-x64_bin.rpm |
要在 Fedora 上安装 RPM 包,请运行以下命令:
|
1 |
sudo rpm -Uvh --nodeps ./ jdk-11.0.11_linux-x64_bin.rpm |
Oracle JDK 8
尽管发布了更新的版本,但 Java 8 仍然是开发人员中最受欢迎的版本之一。可以理解的是,行业正在慢慢向更新的版本过渡,但 Java 8 的受欢迎程度仍然很高。它也可以从 Oracle 官方网站下载为可安装的 RPM 包。请查看 Oracle JDK 8 下载页面。接下来,在您的系统上下载 RPM 包。
要在 Fedora 上安装 RPM 包,请运行以下命令:
|
1 |
sudo rpm --Uvh --nodeps ./jdk-8u291-linux-x64.rpm |
要在 CentOS 上安装它,请运行以下命令:
|
1 |
sudo yum localinstall jdk-8u291-linux-x64.rpm |
-
安装 OpenJDK
OpenJDK 16
OpenJDK 包可以直接从官方包服务器获取。您只需要告诉包管理器安装该包即可。在 CentOS 和 Fedora 上,OpenJDK 16 均作为以下包提供: java-16-openjdk-devel.
在 CentOS 上安装 OpenJDK 16:
|
1 |
sudo yum install java-16-openjdk-devel |
在 Fedora 上安装 OpenJDK 16:
|
1 |
sudo dnf install java-16-openjdk-devel |
OpenJDK 11
在 CentOS 和 Fedora 上,OpenJDK 11 均作为以下包提供: java-11-openjdk-devel.
在 CentOS 上安装 OpenJDK 11:
|
1 |
sudo yum install java-11-openjdk-devel |

在 Fedora 上安装 OpenJDK 11:
|
1 |
sudo dnf install java-11-openjdk-devel |
OpenJDK 8
值得庆幸的是,OpenJDK 8 也可以直接从官方包服务器获取。在 CentOS 和 Fedora 中,OpenJDK 包被标记为: java-1.8.0-openjdk-devel.
在 Fedora 上安装 OpenJDK 8:
|
1 |
sudo dnf install java-1.8.0-openjdk-devel |
在 CentOS 上安装 OpenJDK 8:
|
1 |
sudo yum install java-1.8.0-openjdk-devel |
OpenJDK 版本
OpenJDK 版本对于个人和企业/公司用户来说都是一个有趣的方案。其中许多版本免费为各种 Java 版本提供长期支持。
- 安装 AdoptOpenJDK
AdoptOpenJDK 是另一个非常流行的 OpenJDK 版本。所有 OpenJDK 构建版本都是免费提供的。这是一个由 Java 开发者以及供应商(Amazon、IBM、Azul、Microsoft、Red Hat 等)共同支持的项目。AdoptOpenJDK 二进制文件提供社区和商业支持。
要安装 AdoptOpenJDK,我们将利用第三方存储库,该存储库为 Debian/Ubuntu、CentOS/RHEL/Fedora 和 openSUSE/SLES 提供预构建的 DEB 和 RPM 包。本文简要介绍了该存储库和可用软件包:AdoptOpenJDK — RPM 和 DEB 文件.
首先,我们需要安装第三方存储库。这比本指南中描述的其他方法稍微复杂一些。简而言之,我们必须手动创建存储库条目。创建一个新的存储库 adoptopenjdk.repo。请注意,您必须以 root 用户身份运行该命令:
|
1 |
cat <<EOF > /etc/yum.repos.d/adoptopenjdk.repo |
之后,输入以下代码。根据您的 CentOS 版本,相应地更新 baseurl 条目:
|
1 2 3 4 5 6 7 |
[AdoptOpenJDK] name=AdoptOpenJDK baseurl=https://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/centos/7/$(uname -m) enabled=1 gpgcheck=1 gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public EOF |

在 Fedora 上,请改为输入以下代码。根据 Fedora 版本,相应地更新 baseurl 条目。不要忘记以 root 身份运行该命令:
|
1 |
cat <<EOF > /etc/yum.repos.d/adoptopenjdk.repo |
|
1 2 3 4 5 6 7 |
[AdoptOpenJDK] name=AdoptOpenJDK baseurl=https://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/fedora/33/$(uname -m) enabled=1 gpgcheck=1 gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public EOF |

存储库现已配置完毕。接下来,检查 YUM/DNF 是否启用了新的存储库:
|
1 |
sudo yum repolist |

|
1 |
sudo dnf repolist |

现在,我们可以安装 AdoptOpenJDK 软件包。查看所有可用的软件包:
|
1 |
yum search adoptopenjdk |
|
1 |
dnf search adoptopenjdk |
要在 Fedora 上安装 AdoptOpenJDK 11 (hotspot),请运行以下命令:
|
1 |
sudo dnf install adoptopenjdk-11-hotspot |

要在 CentOS 上安装 AdoptOpenJDK 11 (hotspot),请运行以下命令:
|
1 |
sudo yum install adoptopenjdk-11-hotspot |
测试安装
安装好您选择的 JDK 后,进行一个简短的测试以验证安装是否正常工作:
|
1 |
java -version |
|
1 |
javac -version |

设置默认 Java
如果您的系统安装了多个 JDK,可能会导致冲突。为了避免麻烦,您应该将其中一个设置为默认 JDK。我们可以使用 alternatives 命令进行设置。某些程序需要对环境变量进行额外配置才能确定 JDK 的位置。
-
使用 alternatives
在 CentOS/Fedora 上, alternatives 命令通过符号链接管理默认命令。对于 Java 来说,这非常有用。要更改默认 Java,请运行以下 alternatives 命令:
|
1 |
sudo alternatives --config java |

在输出中,alternatives 将打印所有已安装的 Java。输入您首选 Java 安装的 Selection 值,将其设置为默认值。
-
环境变量
有几个专门用于 Java 的环境变量。这些变量声明了 Java 可执行文件的位置。最常用的环境变量是 JAVA_HOME。它的值是 Java 安装的完整路径。设置该环境变量:
|
1 |
export JAVA_HOME=<java_path> |

要设置 JAVA_HOME 给系统中的所有用户,您必须在 下声明其值/etc/environment:
|
1 |
sudo sh -c "echo export JAVA_HOME=<java_path> >> /etc/environment" |
总结
本指南演示了如何在 CentOS 和 Fedora 上安装 Java。我们还介绍了各种 Java 版本,以便您可以选择最适合您风格的 JDK。
Java 是一种功能强大的编程语言。它是少数几个将跨平台开发放在首位的编程环境之一。几乎任何 Java 程序都可以在任何其他受支持的平台上运行。作为开发人员,您无需为平台兼容性而焦虑。作为用户,您可以放心,所需的应用程序将在您的系统上运行。
如果您想安装 Ubuntu 上的 Java,请参阅本教程.
祝您使用愉快!





评论
暂无评论。发表第一条评论吧。