在 CentOS 上配置 Java(通常是 JDK)时,有几个关键点容易踩坑。下面按“安装 → 配置 → 验证 → 常见坑”给你梳理一下。
# 查看可用版本
yum list java-*openjdk*
# 安装 JDK 8 示例
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
✅ 优点:自动管理依赖
❌ 缺点:版本不一定最新
# 下载 jdk-8uXXX-linux-x64.tar.gz
tar -zxvf jdk-8uXXX-linux-x64.tar.gz -C /usr/local/
目录示例:
/usr/local/jdk1.8.0_XXX
编辑:
vim /etc/profile.d/java.sh
写入:
export JAVA_HOME=/usr/local/jdk1.8.0_XXX
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
生效:
source /etc/profile
✅ 比直接改 /etc/profile 更干净,方便管理
CentOS 可能自带 OpenJDK,容易冲突。
rpm -qa | grep java
java -version
alternatives --config java
或手动指定:
export JAVA_HOME=/your/path
echo $JAVA_HOME
java -version
javac -version
✅ javac 能运行说明 JDK(不是 JRE) 安装成功
Java 服务(如 Tomcat、Spring Boot):
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
生产环境:
getenforce
如为 Enforcing,可临时关闭测试:
setenforce 0
timedatectl
建议:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Java 默认可能不是 UTF-8:
export LANG=zh_CN.UTF-8
JAVA_HOME 必须明确配置root 跑 Java 服务systemd 管理 Java 进程示例 java.service:
[Unit]
Description=Java App
After=network.target
[Service]
User=appuser
ExecStart=/usr/local/jdk/bin/java -jar /opt/app.jar
[Install]
WantedBy=multi-user.target
| 问题 | 原因 |
|---|---|
| command not found | PATH 没配 |
| javac 不存在 | 装的是 JRE |
| 版本不生效 | 多个 Java 冲突 |
| 中文乱码 | 编码/LANG 问题 |
如果你愿意,可以告诉我:
我可以给你一套精准配置方案。