在 Debian 中启动 Java 服务,常见有几种方式,取决于你是直接运行 jar / class,还是作为系统服务管理。下面按场景说明。
java -jar app.jar
后台运行:
nohup java -jar app.jar > app.log 2>&1 &
指定 JVM 参数:
java -Xms512m -Xmx1024m -jar app.jar
javac Main.java
java Main
sudo nano /etc/systemd/system/myjava.service
示例内容:
[Unit]
Description=Java Application
After=network.target
[Service]
User=appuser
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -jar /opt/myapp/app.jar
SuccessExitStatus=143
Restart=on-failure
[Install]
WantedBy=multi-user.target
⚠️ 确保:
/usr/bin/java是正确路径(which java查看)appuser有目录权限
sudo systemctl daemon-reload
sudo systemctl start myjava
设置开机自启:
sudo systemctl enable myjava
查看状态:
sudo systemctl status myjava
查看日志:
journalctl -u myjava -f
创建启动脚本:
nano /opt/myapp/start.sh
内容:
#!/bin/bash
cd /opt/myapp
java -jar app.jar
赋予权限:
chmod +x /opt/myapp/start.sh
运行:
/opt/myapp/start.sh
which java
java -version
未安装:
sudo apt update
sudo apt install default-jdk
sudo netstat -tunlp | grep 8080
确保运行用户有:
✅ 生产环境:systemd 服务
✅ 测试环境:nohup java -jar
❌ 不推荐:直接终端运行(断线即停)
如果你能告诉我:
我可以帮你写一份可直接用的 systemd 配置。