温馨提示×

centos java配置需要注意啥

小樊
34
2026-09-14 22:19:50
栏目: 编程语言

CentOS 上配置 Java 时,有几个常见“坑”和最佳实践,下面按使用场景给你总结一下:


一、选择合适的 Java 版本

1. OpenJDK vs Oracle JDK

  • OpenJDK(推荐):CentOS 官方源自带,免费、稳定
  • Oracle JDK:需要手动下载,注意 License 限制

常用版本:

  • Java 8(老系统最常见)
  • Java 11(LTS,推荐新项目)
  • Java 17(LTS,较新)

二、安装方式推荐

✅ 方式 1:yum / dnf(最简单)

# CentOS 7
yum install -y java-11-openjdk-devel

# CentOS 8 / Stream
dnf install -y java-11-openjdk-devel

devel 包含 javac,只跑程序用 java-11-openjdk 即可


✅ 方式 2:手动安装(多版本共存)

tar -zxvf jdk-11.0.2_linux-x64_bin.tar.gz -C /usr/local/
ln -s /usr/local/jdk-11.0.2 /usr/local/java

三、环境变量配置(重点)

1. 配置 JAVA_HOME

编辑:

vi /etc/profile.d/java.sh

内容示例:

export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH

生效:

source /etc/profile

建议用 /etc/profile.d/ 而不是改 /etc/profile


2. 多 Java 版本管理(非常重要)

alternatives --config java
alternatives --config javac

或手动设置:

alternatives --install /usr/bin/java java /usr/local/java/bin/java 300

四、常见问题 & 注意事项

⚠ 1. java -versionjavac -version 不一致

原因:

  • 只装了 JRE,没装 JDK
  • 多个 Java 版本冲突

解决:

which java
which javac
echo $JAVA_HOME

⚠ 2. 防火墙 & 端口

Java 服务(如 Tomcat、Spring Boot):

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

⚠ 3. SELinux 影响(很少但存在)

getenforce

如果是 Enforcing,必要时:

setenforce 0

⚠ 4. 时间 zone 问题(Java 很敏感)

timedatectl set-timezone Asia/Shanghai

⚠ 5. 中文乱码

locale

确保:

LANG=zh_CN.UTF-8

五、生产环境建议

  • ✅ 使用 LTS 版本(11 / 17)
  • ✅ 用 systemd 管理 Java 服务
  • ✅ JVM 参数单独配置(-Xms -Xmx
  • ✅ 不要直接用 root 跑 Java

六、快速检查清单

java -version
javac -version
echo $JAVA_HOME
which java

如果你愿意,可以告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 用途(Tomcat / Spring Boot / 大数据)
  • 是否多版本共存

我可以给你一份 专属配置方案

0