全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-18 5 分钟 ✍️ juanwangdev

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实现后台运行
  • 命令行参数优先级最高

📝 发现内容有误?点击此处直接编辑

← 上一篇 SpringBoot application.yml配置详解
下一篇 → SpringBoot打包为JAR
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库