在 CentOS 上升级 Java 版本,常见有几种方式,下面按推荐程度给你说明,并附完整示例。
java -version
yum search java | grep openjdk
常见版本:
java-1.8.0-openjdkjava-11-openjdkjava-17-openjdkjava-21-openjdksudo yum install -y java-17-openjdk java-17-openjdk-devel
如果是 CentOS 8 / Stream,用
dnf:
sudo dnf install -y java-17-openjdk java-17-openjdk-devel
sudo alternatives --config java
输出示例:
1 /usr/lib/jvm/java-1.8.0-openjdk/bin/java
2 /usr/lib/jvm/java-17-openjdk/bin/java
输入编号并回车即可。
同样设置 javac:
sudo alternatives --config javac
java -version
javac -version
以 Oracle JDK 17 为例:
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
tar -zxvf jdk-17_linux-x64_bin.tar.gz
sudo mv jdk-17 /usr/local/
编辑:
sudo vi /etc/profile
追加:
export JAVA_HOME=/usr/local/jdk-17
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
java -version
适合开发机,不适合服务器生产环境。
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk list java
sdk install java 17.0.9-tem
which java
echo $JAVA_HOME
启用 EPEL 或使用手动安装:
yum install -y epel-release
| 场景 | 推荐方式 |
|---|---|
| 生产服务器 | yum / dnf |
| 指定版本 | 手动安装 |
| 开发环境 | SDKMAN |
如果你愿意,可以告诉我:
我可以给你精确到命令级别的方案。