在 CentOS 上配置 Java(通常是 JDK)有一些常见技巧和最佳实践,可以让环境更稳定、便于维护。下面从安装方式、环境变量、多版本管理、常见问题几个方面说明。
# 查看可用版本
yum list available java-*openjdk*
# 安装 JDK 8
yum install -y java-1.8.0-openjdk-devel
# 安装 JDK 11
yum install -y java-11-openjdk-devel
✅ 优点:自动配置部分路径
❌ 缺点:版本受仓库限制
# 下载 jdk-17_linux-x64_bin.tar.gz
tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/
建议目录规范:
/usr/local/jdk-17
/etc/profile.d/不要直接改 /etc/profile,更清晰、易维护。
vi /etc/profile.d/java.sh
内容示例(JDK 17):
export JAVA_HOME=/usr/local/jdk-17
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib
生效:
source /etc/profile.d/java.sh
验证:
java -version
alternatives --install /usr/bin/java java /usr/local/jdk-17/bin/java 1700
alternatives --install /usr/bin/java java /usr/local/jdk-8/bin/java 800
# 切换版本
alternatives --config java
✅ 优点:系统级切换,干净
不同项目用不同 JDK:
export JAVA_HOME=/usr/local/jdk-11
适合:
yum remove java-*-openjdk-headless
或锁定版本:
yum versionlock java-1.8.0-openjdk
示例:
JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"
Tomcat / Spring Boot 常用:
export JAVA_OPTS="-server -Xms1g -Xmx1g"
export TZ=Asia/Shanghai
或在 JVM 参数:
-Duser.timezone=Asia/Shanghai
java: command not foundsource 环境变量which java
echo $JAVA_HOME
✅ 用 /usr/local/jdk-xx
✅ 用 profile.d 配置环境变量
✅ 用 alternatives 管理多版本
✅ 生产环境锁定 JDK 版本
✅ JVM 参数单独管理
如果你有具体场景(如:CentOS 7 + Tomcat / Spring Boot / Jenkins / Docker),我可以给你更针对性的配置示例。