温馨提示×

Ubuntu Java服务怎么启动

小樊
42
2026-07-12 20:06:57
栏目: 编程语言

Ubuntu 上启动 Java 服务,常见有几种方式,取决于你是 直接运行 Java 程序使用 Spring Boot、还是 做成系统服务。下面按最常用场景给你说明。


一、直接运行 Java 程序(最简单)

1️⃣ 确认 Java 已安装

java -version

如果没有安装:

sudo apt update
sudo apt install openjdk-17-jdk   # 或 8 / 11 / 21

2️⃣ 启动 Java 程序

java -jar your-app.jar

后台运行:

nohup java -jar your-app.jar > app.log 2>&1 &

查看日志:

tail -f app.log

二、Spring Boot 服务启动(最常见)

1️⃣ 打包

mvn clean package

生成:

target/your-app.jar

2️⃣ 启动

java -jar target/your-app.jar

指定端口:

java -jar target/your-app.jar --server.port=8080

指定配置文件:

java -jar app.jar --spring.profiles.active=prod

三、使用 systemd(推荐,服务器标准做法 ✅)

1️⃣ 创建服务文件

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
  • jar 路径要写绝对路径

2️⃣ 重载并启动

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

❓ Java 命令找不到

sudo apt install openjdk-17-jdk

❓ 权限不足

chmod +x myapp.jar

六、推荐方案总结

场景 推荐方式
本地测试 java -jar
生产服务器 systemd
Spring Boot java -jar + systemd
多实例 systemd + 不同端口

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

  • ✅ 是否是 Spring Boot
  • ✅ Java 版本
  • ✅ 是否是 生产环境
  • ✅ 是否要 开机自启

我可以帮你写一份 完整可用的 systemd 配置

0