在 CentOS 上切换 Java 版本,常见做法有 alternatives(推荐)、手动配置环境变量 和 使用 SDKMAN。下面按常用程度给你说明。
alternatives(CentOS 官方推荐 ✅)java -version
查看系统中已注册的 Java:
sudo alternatives --config java
输出示例:
There are 2 programs that provide 'java'.
Selection Command
-----------------------------------------------
*+ 1 /usr/lib/jvm/java-11-openjdk/bin/java
2 /usr/lib/jvm/java-8-openjdk/bin/java
Enter to keep the current selection[+], or type selection number:
输入编号即可切换。
javac(如果有)sudo alternatives --config javac
例如你手动安装了 JDK:
sudo alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_361/bin/java 1
sudo alternatives --install /usr/bin/javac javac /usr/local/jdk1.8.0_361/bin/javac 1
然后再次执行:
sudo alternatives --config java
vi ~/.bashrc
或 /etc/profile(全局)
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bashrc
java -version
⚠️ 注意:
alternatives适合 开发机 / 多项目切换
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk list java
sdk install java 8.0.392-tem
sdk install java 17.0.9-tem
sdk use java 8.0.392-tem # 当前终端
sdk default java 17.0.9-tem # 永久
| 系统 | 说明 |
|---|---|
| CentOS 7 | 常用 alternatives |
| CentOS 8 / Stream | 推荐 OpenJDK + alternatives |
| 云服务器 | 避免直接删系统 Java |
✅ 服务器环境:alternatives
✅ 开发环境:SDKMAN
❌ 不建议直接改 /usr/bin/java 软链接
如果你愿意,可以告诉我:
我可以给你一套最合适的具体命令。