在Linux上部署Java应用程序通常涉及以下几个步骤:
mvn clean package
。对于Gradle项目,使用命令 gradle bootJar
。java -version
来检查Java是否已经安装。sudo apt update
sudo apt install openjdk-17-jdk
对于CentOS/RHEL系统,使用:sudo yum install java-17-openjdk-devel
scp
或 SFTP
工具将打包好的JAR文件上传到Linux服务器。java -jar your-project.jar
命令运行项目。这种方式在关闭终端后进程会停止。nohup
命令使进程在后台运行,并将输出重定向到日志文件:nohup java -jar your-project.jar > app.log 2>&1 &
--spring.profiles.active
参数:java -jar your-project.jar --spring.profiles.active=prod
systemd
管理服务,实现开机自启和日志管理。创建一个服务文件 /etc/systemd/system/springboot-app.service
并添加以下内容(根据实际路径修改):[Unit]
Description=Spring Boot App
After=syslog.target network.target
[Service]
User=your_user
WorkingDirectory=/path/to/deploy
ExecStart=/usr/bin/java -jar /path/to/deploy/your-project.jar
Restart=always
RestartSec=3
Environment="JAVA_OPTS=-Xms512m -Xmx1024m -Dspring.profiles.active=prod"
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reloads
sudo systemctl start springboot-app
sudo systemctl enable springboot-app
sudo systemctl status springboot-app
sudo ufw allow 8080/tcp
sudo firewall-cmd --add-port=8080/tcp --permanents
sudo firewall-cmd --reload
nohup.out
或 app.log
(根据启动命令)。journalctl
查看:sudo journalctl -u springboot-app -f
application.yml
中配置日志路径:logging:
file:
path: /var/log/springboot
name: app.log
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
这样可以通过域名访问或启用HTTPS。通过以上步骤,你可以在Linux系统上成功部署Java应用程序。根据具体需求,你可能还需要进行其他配置,如数据库连接、安全设置等。