在 CentOS 上配置 Java 服务,常见场景有几种,从“运行 Java 程序”到“配置成系统服务”。下面按最常用、最规范的方式说明,你可以按需参考。
java -version
yum install -y java-11-openjdk java-11-openjdk-devel
dnf install -y java-11-openjdk java-11-openjdk-devel
如需 Java 8:
yum install -y java-1.8.0-openjdk
readlink -f $(which java)
常见路径:
/usr/lib/jvm/java-11-openjdk-xxx
编辑:
vi /etc/profile
添加:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
java -jar myapp.jar
后台运行:
nohup java -jar myapp.jar > app.log 2>&1 &
假设你有:
/opt/app/myapp.jar
vi /etc/systemd/system/myapp.service
[Unit]
Description=My Java Application
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -Xms256m -Xmx512m -jar /opt/app/myapp.jar
SuccessExitStatus=143
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
✅ 说明:
User:建议用非 root 用户Restart=always:服务挂掉自动重启SuccessExitStatus=143:Spring Boot 正常退出systemctl daemon-reload
systemctl start myapp
systemctl enable myapp
systemctl status myapp
journalctl -u myapp -f
ExecStart=/usr/bin/java -jar /opt/app/myapp.jar --spring.profiles.active=prod
ExecStart=/usr/bin/java \
-Xms512m \
-Xmx1024m \
-Dfile.encoding=UTF-8 \
-jar /opt/app/myapp.jar
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
which java
java -version
journalctl -u myapp -xe
chmod +x /opt/app/myapp.jar
/opt/app/
├── myapp.jar
├── config/
│ └── application.yml
└── logs/
如果你愿意,可以告诉我:
我可以直接给你可复制的完整配置。