插件窝 干货文章 Linux部署jar包过程

Linux部署jar包过程

your JAR app Java 813    来源:    2025-04-01

Linux 部署 JAR 包完整流程

准备工作

  1. 环境要求

    • Linux 服务器(CentOS/Ubuntu 等)
    • JDK 1.8 或以上版本
    • 确保网络连接正常
  2. 上传 JAR 包

    • 使用 scp 或 FTP 工具将 JAR 包上传到服务器
    • 示例:scp your-app.jar username@server_ip:/path/to/destination

部署步骤

1. 安装 Java 环境

# 检查是否已安装Java
java -version

# 如果没有安装,安装OpenJDK(以Ubuntu为例)
sudo apt update
sudo apt install openjdk-11-jdk

# 验证安装
java -version

2. 运行 JAR 包

基本运行方式

java -jar your-app.jar

后台运行(使用nohup)

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

带参数运行

java -jar your-app.jar --server.port=8080 --spring.profiles.active=prod

3. 使用 Systemd 管理服务(推荐)

  1. 创建服务文件:
sudo vim /etc/systemd/system/your-app.service
  1. 添加以下内容(根据实际情况修改):
[Unit]
Description=Your Java Application
After=syslog.target network.target

[Service]
User=your_user
WorkingDirectory=/path/to/your/app
ExecStart=/usr/bin/java -jar /path/to/your-app.jar
SuccessExitStatus=143
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
  1. 启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable your-app
sudo systemctl start your-app
  1. 常用命令:
# 查看状态
sudo systemctl status your-app

# 停止服务
sudo systemctl stop your-app

# 重启服务
sudo systemctl restart your-app

# 查看日志
journalctl -u your-app -f

4. 配置防火墙(如果需要)

# 开放端口(以8080为例)
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

高级配置

JVM 参数优化

java -Xms512m -Xmx1024m -XX:+UseG1GC -jar your-app.jar

使用 JAR 包外部的配置文件

java -jar your-app.jar --spring.config.location=/path/to/application.properties

多环境配置

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

常见问题解决

  1. 端口冲突

    • 检查端口是否被占用:netstat -tulnp | grep 端口号
    • 修改应用端口:--server.port=新端口
  2. 内存不足

    • 调整 JVM 内存参数:-Xms-Xmx
  3. 文件权限问题

    • 确保运行用户有权限访问 JAR 包和日志目录
  4. 查看日志

    • 如果使用 nohup:tail -f app.log
    • 如果使用 systemd:journalctl -u your-app -f

最佳实践

  1. 使用专用用户运行应用程序
  2. 配置日志轮转(logrotate)
  3. 设置监控和告警
  4. 考虑使用 CI/CD 自动化部署流程
  5. 对于生产环境,建议使用容器化部署(Docker)

希望这个指南能帮助您顺利在 Linux 上部署 JAR 包应用!