#### 一、前言
Java 8 曾经是长期支持版本(LTS),被广泛用于企业级应用开发。但随着时间推移,Java 11 成为了新的 LTS 版本,提供了更好的性能、安全更新和新特性。本文将指导你在 CentOS 系统中将 Java 8 升级到 Java 11。
—
#### 二、查看当前 Java 版本
在升级之前,首先确认当前系统中安装的 Java 版本:
“`bash
java -version
“`
如果输出如下内容,说明当前使用的是 Java 8:
“`bash
openjdk version “1.8.0_292”
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
“`
—
#### 三、安装 Java 11(OpenJDK 11)
CentOS 的默认仓库中通常包含 OpenJDK 11,可以使用 `yum` 包管理器安装:
“`bash
sudo yum install -y java-11-openjdk java-11-openjdk-devel
“`
– `java-11-openjdk`:运行 Java 应用程序所需的运行时环境。
– `java-11-openjdk-devel`:开发工具包(包括编译器、调试器等)。
—
#### 四、设置默认 Java 版本
如果系统中同时安装了多个 Java 版本,需要使用 `alternatives` 命令来切换默认版本:
“`bash
sudo alternatives –config java
“`
系统会列出所有已安装的 Java 版本,输入对应 Java 11 的编号即可。
例如:
“`bash
There are 2 programs which provide ‘java’.
Selection Command
———————————————–
*+ 1 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre/bin/java
2 /usr/lib/jvm/java-11-openjdk-11.0.11.0.9-2.el7_9.x86_64/bin/java
Enter to keep the current selection[+], or type selection number: 2
“`
同样地,也可以设置 `javac` 编译器的默认版本:
“`bash
sudo alternatives –config javac
“`
—
#### 五、验证 Java 版本
完成切换后,再次检查 Java 和 Java 编译器版本:
“`bash
java -version
javac -version
“`
预期输出应为:
“`bash
openjdk version “11.0.11” 2021-08-17 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.11+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.11+9-LTS, mixed mode, sharing)
“`
“`bash
javac 11.0.11
“`
—
#### 六、可选:卸载 Java 8(旧版本)
如果你不再需要 Java 8,可以选择卸载它以节省空间:
“`bash
sudo yum remove -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
“`
—
#### 七、配置环境变量(可选)
虽然使用 `alternatives` 设置后系统已经可以正常运行 Java 11,但在某些开发环境中(如 Tomcat、Maven、IDE 等),可能仍需要手动配置 `JAVA_HOME` 环境变量。
编辑环境变量配置文件:
“`bash
sudo vi /etc/profile.d/java.sh
“`
添加以下内容:
“`bash
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
“`
保存后应用更改:
“`bash
source /etc/profile.d/java.sh
“`
验证 `JAVA_HOME` 是否设置成功:
“`bash
echo $JAVA_HOME
“`
—
#### 八、总结
通过以上步骤,你已经成功将 CentOS 系统中的 Java 从 8 升级到了 11。Java 11 带来了性能优化、新 API 支持和更长的支持周期,适合用于现代 Java 应用程序的开发与部署。
—
#### 九、常见问题
**Q1:如何查看系统中已安装的所有 Java 版本?**
“`bash
ls /usr/lib/jvm/
“`
**Q2:升级后某些程序无法运行怎么办?**
可能是程序依赖 Java 8 的特性,建议先测试程序兼容性,或使用 `jenv` 工具进行多版本管理。
**Q3:是否必须使用 OpenJDK?**
OpenJDK 是开源免费的,适合大多数应用场景。如需商业支持,可选择 Oracle JDK 或 Adoptium(原 AdoptOpenJDK)等发行版。