Linux系统启动jar包--Java8

启动命令及参数

1. 启动命令模板

nohup java \
-Xms512m \
-Xmx1024m \
-Xmn256m \
-XX:MetaspaceSize=128m \
-XX:MaxMetaspaceSize=256m \
-XX:+UseG1GC \
-XX:InitiatingHeapOccupancyPercent=45 \
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps \
-XX:+PrintGCApplicationStoppedTime \
-XX:+PrintGCApplicationConcurrentTime \
-Xloggc:logs/gc.log \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=logs/dump.hprof \
-Dfile.encoding=UTF-8 \
-Dspring.profiles.active=prod \
-jar mdy_lcpd-0.0.1-SNAPSHOT.jar > logs/app.log 2>&1 &

2. 参数详解

堆内存参数
  1. -Xms512m:设置 JVM 堆的初始内存为 512 MB。
  2. -Xmx1024m:设置 JVM 堆的最大内存为 1024 MB。
  3. -Xmn256m:设置新生代大小为 256 MB,用于存储短生命周期的对象(例如临时变量)。
  4. 调整建议:
    • 堆大小(-Xms-Xmx)应设置为相同值,避免堆的动态调整导致性能抖动。
    • 新生代(-Xmn)通常为堆大小的 1/4 到 1/3。

元空间参数
  1. -XX:MetaspaceSize=128m:设置元空间的初始大小
Linux 系统中启动 Java 应用程序时,可以通过 `-javaagent` 参数加载 Java Agent,用于对 JVM 进行监控、修改字节码等操作。该参数通常用于性能分析、日志增强、代码覆盖率统计等场景。 ### 使用 `javaagent` 参数的语法 在启动 Java 应用程序时,可以使用如下格式指定 `-javaagent` 参数: ```bash java -javaagent:/path/to/your-agent.jar -jar your-application.jar ``` 其中 `/path/to/your-agent.jar` 是 Java Agent 的路径,而 `your-application.jar` 是要启动的应用程序主 JAR 。 ### 多个 Java Agent 的加载 如果需要加载多个 Agent,可以多次使用 `-javaagent` 参数,JVM 会按照参数顺序依次加载: ```bash java -javaagent:/path/to/agent1.jar -javaagent:/path/to/agent2.jar -jar your-application.jar ``` ### 示例:结合 Spring Boot 项目使用 在 Spring Boot 项目中,可以通过如下命令启动 JAR 并加载 Agent: ```bash java -server -javaagent:/opt/agents/my-monitoring-agent.jar -XX:+HeapDumpOnOutOfMemoryError -jar my-springboot-app.jar --spring.profiles.active=prod ``` 该命令中: - `-server` 表示使用 Server 模式启动,适用于生产环境[^1]。 - `-javaagent:/opt/agents/my-monitoring-agent.jar` 加载了自定义的 Java Agent。 - `-XX:+HeapDumpOnOutOfMemoryError` 表示在内存溢出时生成堆转储文件[^1]。 - `--spring.profiles.active=prod` 用于指定 Spring Boot 使用的配置文件。 ### 与 Shell 脚本结合使用 可以将上述命令集成到启动脚本中,例如: ```bash #!/bin/bash APP_NAME=my-springboot-app.jar AGENT_PATH=/opt/agents/my-monitoring-agent.jar PID=$(ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}') if [ -n "$PID" ]; then echo "Killing existing process: $PID" kill -9 $PID fi nohup java -server -javaagent:$AGENT_PATH -XX:+HeapDumpOnOutOfMemoryError -jar $APP_NAME --spring.profiles.active=prod > /var/log/myapp.log 2>&1 & echo "Application started." ``` 该脚本首先检查是否已有相同应用在运行,若有则终止旧进程,然后以指定参数启动新进程,并将日志输出到指定文件中[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愤怒的代码

如果您有受益,欢迎打赏博主😊

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值