SpringBoot命令行运行JAR
SpringBoot JAR 包可通过命令行直接运行。
基本运行
Bash
java -jar my-app.jar
指定端口
Bash
java -jar my-app.jar --server.port=9090
激活环境
Bash
java -jar my-app.jar --spring.profiles.active=prod
JVM参数
Bash
java -Xms512m -Xmx1024m -jar my-app.jar
| 参数 | 说明 |
|---|---|
| -Xms | 初始堆内存 |
| -Xmx | 最大堆内存 |
| -Xmn | 年轻代内存 |
| -XX:MetaspaceSize | 元空间大小 |
后台运行
Bash
# Linux后台运行
nohup java -jar my-app.jar > app.log 2>&1 &
# 查看进程
ps -ef | grep my-app
# 停止进程
kill -9 <pid>
参数传递方式
命令行参数
Bash
java -jar my-app.jar --app.name=test --app.timeout=5000
环境变量
Bash
export SERVER_PORT=9090
export SPRING_PROFILES_ACTIVE=prod
java -jar my-app.jar
JVM系统属性
Bash
java -Dserver.port=9090 -jar my-app.jar
参数优先级
Bash
命令行参数 > JVM系统属性 > 环境变量 > application.yml
常用启动脚本
Bash
#!/bin/bash
# start.sh
APP_NAME="my-app"
JAR_FILE="my-app.jar"
LOG_FILE="logs/app.log"
# JVM参数
JVM_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"
# 应用参数
APP_OPTS="--server.port=8080 --spring.profiles.active=prod"
# 启动
nohup java $JVM_OPTS -jar $JAR_FILE $APP_OPTS > $LOG_FILE 2>&1 &
echo "应用已启动,日志: $LOG_FILE"
停止脚本
Bash
#!/bin/bash
# stop.sh
APP_NAME="my-app"
PID=$(ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
kill -15 $PID
echo "应用已停止"
else
echo "应用未运行"
fi
健康检查
Bash
# 检查应用状态
curl http://localhost:8080/actuator/health
# 响应示例
{"status":"UP"}
日志查看
Bash
# 查看日志
tail -f logs/app.log
# 查看最近100行
tail -100 logs/app.log
# 搜索错误
grep "ERROR" logs/app.log
端口检查
text
# 检查端口占用
netstat -tlnp | grep 8080
# 或使用lsof
lsof -i :8080
参数格式说明
| 格式 | 示例 |
|---|---|
| --key=value | --server.port=8080 |
| --key value | --server.port 8080 |
| -Dkey=value | -Dserver.port=8080 |
建议生产环境使用 --key=value 格式。
要点总结
- java -jar直接运行可执行JAR
- --server.port指定端口
- --spring.profiles.active激活环境
- nohup实现后台运行
- 命令行参数优先级最高
📝 发现内容有误?点击此处直接编辑