指定jvm参数启动jar

/usr/local/java/jdk1.8.0_131/bin/java -jar -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/spb_zcmweb/8103/dump/heap/
 -Djava.io.tmpdir=/data/spb_zcmweb/8103/tmp/ 
 -Dserver.port=8103 
 -Dcom.sun.management.jmxremote
 -Dcom.sun.management.jmxremote.port=5103 
 -Dcom.sun.management.jmxremote.rmi.port=6103 
 -Dcom.sun.management.jmxremote.authenticate=false 
 -Dcom.sun.management.jmxremote.ssl=false 
 -Dcom.sun.management.jmxremote.access.file=/usr/local/java/jdk1.8.0_131/jre/lib/management/jmxremote.access 
 -Xmx2G -Xms2G -XX:+DisableExplicitGC -verbose:gc -Xloggc:/data/spb_zcmweb/8103/log/gc.%t.log -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCTaskTimeStamps -XX:+PrintGCDetails -XX:+PrintGCDateStamps 
 -Dserver.connection-timeout=60000 
 -Dserver.tomcat.accept-count=1000 
 -Dserver.tomcat.max-threads=300 
 -Dserver.tomcat.min-spare-threads=65 
 -Dserver.tomcat.accesslog.enabled=false 
 -Dserver.tomcat.accesslog.directory=/data/spb_zcmweb/8103/log/ 
 -Dserver.tomcat.accesslog.prefix=access_log 
 -Dserver.tomcat.accesslog.pattern=combine 
 -Dserver.tomcat.accesslog.suffix=.log 
 -Dserver.tomcat.accesslog.rotate=true 
 -Dserver.tomcat.accesslog.rename-on-rotate=true 
 -Dserver.tomcat.accesslog.request-attributes-enabled=true 
 -Dserver.tomcat.accesslog.buffered=true 
 -XX:NewRatio=4 -XX:SurvivorRatio=30 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=8 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:ParallelGCThreads=24 -XX:ConcGCThreads=24 -XX:-UseGCOverheadLimit -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=1 -XX:+CMSParallelRemarkEnabled -XX:+CMSScavengeBeforeRemark -XX:+ParallelRefProcEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSMaxAbortablePrecleanTime=6000 -XX:CompileThreshold=10 -XX:MaxInlineSize=1024 -Dsun.net.client.defaultConnectTimeout=60000 
 -Dsun.net.client.defaultReadTimeout=60000 
 -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300 
 -Djsse.enableCBCProtection=false 
 -Djava.security.egd=file:/dev/./urandom 
 -Dfile.encoding=UTF-8 
 -Dlog.path=/data/spb_zcmweb/8103/log/ 
 -Dspring.profiles.active=online  
 /data/spb_zcmweb/8103/deploy/zcmweb.jar zcmweb 

### 如何在运行 JAR 文件时设置 JVM 参数 当运行 Java 应用程序的 JAR 文件时,可以通过环境变量 `JAVA_OPTS` 或直接在命令行中指定 JVM 参数来实现动态配置。以下是详细的说明和示例。 #### 使用 JAVA_OPTS 环境变量 通过设置 `JAVA_OPTS` 环境变量,可以在不修改启动脚本的情况下传递 JVM 参数给应用程序。此方式适用于大多数基于 Java 的服务(如 Tomcat)。 例如,在 Unix/Linux 系统上,可以这样设置: ```bash export JAVA_OPTS="-Xms8000m -Xmx8000m -Xmn6000m" java $JAVA_OPTS -jar your-application.jar ``` 这种方式允许灵活地调整内存分配和其他 JVM 属性[^2]。 #### 命令行直接指定参数 如果不想依赖于环境变量,则可以直接在命令行中提供 JVM 参数。这是最常见的方式之一,尤其适合临时测试或调试场景。语法如下: ```bash java -Xms8000m -Xmx8000m -Xmn6000m -jar your-application.jar ``` 上述命令设置了初始堆大小 (`-Xms`) 和最大堆大小 (`-Xmx`) 为 8GB,并将新生代大小设为了 6GB。 #### 动态调整 JVM 参数 尽管大部分 JVM 参数仅能在启动阶段生效,但部分参数支持运行期更改。例如,垃圾回收日志记录级别可通过 MBean 接口实时更新。下面是一个简单的代码片段展示如何访问并操作这些属性: ```java import java.lang.management.ManagementFactory; import javax.management.MBeanServer; import javax.management.ObjectName; public class DynamicJvmParameter { public static void main(String[] args) throws Exception { MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); ObjectName name = new ObjectName("java.lang:type=Memory"); // 获取当前堆内存使用情况 Long heapMemoryUsage = (Long) mbs.getAttribute(name, "HeapMemoryUsage"); System.out.println("Current Heap Memory Usage: " + heapMemoryUsage); } } ``` 需要注意的是,不是所有的 JVM 参数都可以被动态调整;具体取决于所使用的 JDK 版本及其文档中的定义[^1]。 --- #### 总结 无论是通过命令行还是借助环境变量,合理地配置 JVM 参数对于提升 Java 应用性能至关重要。实际开发过程中应根据需求权衡不同方案的优点与局限性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

非ban必选

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值