文章目录
在 Linux 系统中,完成 Java 程序的打包、运行和部署是开发人员的重要技能。本文将涵盖从 打包、运行、前后台管理、关闭程序,到 使用 Shell 脚本管理程序的完整流程,助你高效完成任务。
一、Java 程序打包
程序开发完成后,需将代码打包为 JAR 文件以便部署。
1. 使用 Maven 打包
切换到项目根目录:
cd /path/to/your/project
运行 Maven 命令:
mvn clean install
打包完成后,JAR 文件会出现在
target/
目录,例如:target/myapp-1.0.jar
。验证打包结果:
java -jar target/myapp-1.0.jar
2. 使用 Gradle 打包
运行 Gradle 命令:
./gradlew build
找到生成的 JAR 文件: 文件通常位于
build/libs/
目录。
打包程序这里就用maven指令简单带过了,之前文章有详细讲过程序的打包方式,忘记的朋友可以看下面这篇:
SpringBoot项目:前后端打包与部署(使用 Maven)
二、运行 JAR 文件
完成打包后,可通过以下方式运行程序。
1. 前台运行
最简单的运行方式是直接执行以下命令:
java -jar myapp-1.0.jar
程序会在当前终端运行,日志输出到屏幕上。关闭终端后,程序会结束运行。
2. 后台运行
若希望程序在终端关闭后仍继续运行,可采用以下方式:
方法 1:使用 &
符号
java -jar myapp-1.0.jar &
- 说明:程序会以后台任务运行。可以通过以下命令查看和管理任务:
- 查看后台任务:
jobs
- 将后台任务转到前台:
fg %1
(1
是任务编号)。 - 继续运行后台任务:
bg %1
。
- 查看后台任务:
方法 2:使用 nohup
nohup java -jar myapp-1.0.jar > app.log 2>&1 &
nohup
:忽略终端关闭信号,确保程序持续运行。> app.log
:将日志保存到app.log
文件。2>&1
:将错误日志也保存到同一个文件。
三、关闭运行中的程序
1. 查找程序 PID
通过 ps
命令找到正在运行的 Java 程序:
ps -ef | grep java
输出示例:
root 10901 1 0 12:00 ? 00:00:20 java -jar myapp-1.0.jar
其中,10901
是程序的进程 ID(PID)。
2. 关闭程序
使用 kill
命令根据 PID 终止程序:
kill 10901
若无法正常关闭,可以强制终止:
kill -9 10901
四、使用 Shell 脚本管理程序
手动启动和关闭程序可能显得繁琐。为简化操作,可以使用脚本管理程序。
1. 创建 Shell 脚本
新建一个 app.sh
文件,内容如下:
#!/bin/bash
APP_NAME="myapp-1.0.jar" # JAR 文件名
LOG_FILE="app.log" # 日志文件
PID_FILE="app.pid" # PID 文件
case "$1" in
start)
if [ -f "$PID_FILE" ]; then
echo "程序已运行,PID=$(cat $PID_FILE)"
exit 1
fi
nohup java -jar $APP_NAME > $LOG_FILE 2>&1 &
echo $! > $PID_FILE
echo "程序已启动,PID=$(cat $PID_FILE)"
;;
stop)
if [ -f "$PID_FILE" ]; then
kill $(cat $PID_FILE)
rm -f $PID_FILE
echo "程序已停止"
else
echo "未找到运行中的程序"
fi
;;
restart)
$0 stop
$0 start
;;
status)
if [ -f "$PID_FILE" ]; then
echo "程序正在运行,PID=$(cat $PID_FILE)"
else
echo "程序未运行"
fi
;;
*)
echo "用法: $0 {start|stop|restart|status}"
exit 1
;;
esac
2. 使用脚本
赋予可执行权限:
chmod +x app.sh
启动程序:
./app.sh start
停止程序:
./app.sh stop
查看状态:
./app.sh status
shell脚本详细可以看这个文章:【LINUX】Shell 脚本管理 Java 程序详解-CSDN博客
五、总结
通过本文的讲解,你已经学会如何在 Linux 下完成 Java 程序的打包、运行及管理:
- 打包:使用 Maven 或 Gradle 构建 JAR 文件。
- 运行:支持前台运行(直接运行)和后台运行(
&
或nohup
)。 - 关闭程序:通过
ps
查找进程并使用kill
停止。 - 脚本管理:编写 Shell 脚本实现一键启动、停止、重启和状态查看。