在CentOS系统中部署JAR包是许多开发者和运维人员的常见需求,本文将详细介绍从环境准备到服务启动的全过程,确保操作步骤清晰易懂,帮助读者顺利完成部署任务。

环境准备
在开始部署前,需确保CentOS系统已安装Java运行环境(JRE)或Java开发工具包(JDK),通过命令java -version检查当前Java版本,若未安装,可使用yum install java-1.8.0-openjdk命令安装OpenJDK,安装完成后,建议配置JAVA_HOME环境变量,以便系统识别Java路径,确保系统具备足够的磁盘空间和内存资源,以保障JAR包的稳定运行。
上传JAR包
将编译好的JAR包上传至CentOS服务器,可通过scp命令或FTP工具实现,使用scp命令时,执行scp /local/path/app.jar user@server:/remote/path/,将本地文件传输至服务器的指定目录,上传完成后,通过ls -l命令验证文件是否存在,并确保文件权限设置正确,通常使用chmod 755 app.jar赋予执行权限。
编写启动脚本
为便于管理服务,建议编写启动脚本,创建start.sh如下:
#!/bin/bash nohup java -jar app.jar > app.log 2>&1 & echo $! > app.pid
该脚本使用nohup命令使程序在后台运行,并将日志输出至app.log文件。&符号将进程置于后台,同时将进程ID保存至app.pid文件,执行chmod +x start.sh赋予脚本执行权限,后续可通过./start.sh启动服务。

服务管理
通过ps -ef | grep java命令检查JAR包进程是否正常运行,若需停止服务,可使用kill $(cat app.pid)命令终止进程,为提高管理效率,可结合systemd创建服务单元文件,在/etc/systemd/system/目录下创建app.service如下:
[Unit] Description=My Java Application After=network.target [Service] Type=forking User=root ExecStart=/path/to/start.sh ExecStop=/bin/kill -15 $MAINPID Restart=always [Install] WantedBy=multi-user.target
执行systemctl daemon-reload重新加载配置,使用systemctl start app启动服务,systemctl enable app设置开机自启。
日志监控
日志是排查问题的重要依据,通过tail -f app.log实时查看日志输出,或使用grep关键字过滤日志内容,若日志量较大,建议配置日志轮转策略,避免单个日志文件占用过多磁盘空间。
相关问答FAQs
Q1: 如何查看JAR包进程的CPU和内存占用情况?
A1: 可使用top -p $(cat app.pid)命令查看进程资源占用,或通过ps -p $(cat app.pid) -o pid,ppid,cmd,%cpu,%mem,etime获取详细进程信息。

Q2: 修改JAR包配置后如何重启服务?
A2: 若使用systemd管理服务,执行systemctl restart app即可重启;若通过脚本启动,需先停止进程(kill $(cat app.pid)),再重新执行启动脚本。