在 Ubuntu 上启动 Java 服务,常见有几种方式,取决于你是 直接运行 Java 程序、使用 Spring Boot、还是 做成系统服务。下面按最常用场景给你说明。
java -version
如果没有安装:
sudo apt update
sudo apt install openjdk-17-jdk # 或 8 / 11 / 21
java -jar your-app.jar
后台运行:
nohup java -jar your-app.jar > app.log 2>&1 &
查看日志:
tail -f app.log
mvn clean package
生成:
target/your-app.jar
java -jar target/your-app.jar
指定端口:
java -jar target/your-app.jar --server.port=8080
指定配置文件:
java -jar app.jar --spring.profiles.active=prod
sudo vim /etc/systemd/system/myjava.service
示例内容:
[Unit]
Description=Java Service
After=network.target
[Service]
User=ubuntu
ExecStart=/usr/bin/java -jar /home/ubuntu/app/myapp.jar
SuccessExitStatus=143
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
⚠️ 注意:
java 路径用 which java 查sudo systemctl daemon-reload
sudo systemctl start myjava
开机自启:
sudo systemctl enable myjava
查看状态:
sudo systemctl status myjava
查看日志:
journalctl -u myjava -f
vim start.sh
#!/bin/bash
java -jar /home/ubuntu/app/myapp.jar
chmod +x start.sh
./start.sh
lsof -i:8080
kill -9 PID
sudo apt install openjdk-17-jdk
chmod +x myapp.jar
| 场景 | 推荐方式 |
|---|---|
| 本地测试 | java -jar |
| 生产服务器 | ✅ systemd |
| Spring Boot | java -jar + systemd |
| 多实例 | systemd + 不同端口 |
如果你愿意,可以告诉我:
我可以帮你写一份 完整可用的 systemd 配置。