乐趣区

关于java:Java-jar-启动-JVM常用参数配置解读

java 启动参数共分为三类:

其一是规范参数(-),所有的 JVM 实现都必须实现这些参数的性能,而且向后兼容;

其二是非规范参数(-X),默认 jvm 实现这些参数的性能,然而并不保障所有 jvm 实现都满足,且不保障向后兼容;

其三是非 Stable 参数(-XX),此类参数各个 jvm 实现会有所不同,未来可能会随时勾销,须要谨慎应用;

规范参数
-jar
指定以 jar 包的模式执行一个应用程序。
要这样执行一个应用程序,必须让 jar 包的 manifest 文件中申明初始加载的 Main-class,当然那 Main-class 必须有 public static void main(String[]args) 办法。

-client
设置 JVM 应用 client 模式,特点是启动速度比拟快,但运行时性能和内存管理效率不高,通常用于客户端应用程序或者 PC 利用开发和调试。

-server
设置 JVM 使 server 模式,特点是启动速度比较慢,但运行时性能和内存管理效率很高,实用于生产环境。在具备 64 位能力的 JDK 环境下将默认启用该模式,而疏忽 -client 参数。

-classpath
用来告知 JVM 搜寻目录名、jar 文档名、zip 文档名,之间用分号分隔;应用 -classpath 后 JVM 将不再应用 CLASSPATH 中的类搜寻门路,如果 -classpath 和 CLASSPATH 都没有设置,则 JVM 应用以后门路 (.) 作为类搜寻门路。
JVM 搜寻类的形式和程序为:Bootstrap,Extension,User。

-Dproperty=value
设置零碎属性名 / 值对,运行在此 JVM 之上的应用程序可用 System.getProperty(“property”) 失去 value 的值。如果 value 中有空格,则须要用双引号将该值括起来,如 -Dname=”spacestring”。该参数通常用于设置零碎级全局变量值,如配置文件门路,以便该属性在程序中任何中央都可拜访。


-Xms 初始堆内存大小,默认物理内存 64/1
-Xms = -XX:InitialHeapSize


-Xmx 最大堆内存,默认物理内存 4 /1
-Xmx = -XX:MaxHeapSize


-Xss 栈内存大小;
-Xss = -XX:ThreadStackSize
设置单个线程栈大小,个别默认 512~1024kb。
单个线程栈大小跟操作系统和 JDK 版本都有关系


-Xmn 年老代大小


-XX:MetaspaceSize 元空间大小
元空间实质跟永恒代相似,都是对 JVM 标准中办法区的实现。
不过元空间与永恒代最大的区别在于:元空间并不在虚拟机中,而是应用本机内存。
因而,元空间大小仅受本地内存限度。


-XX:+PrintGCDetails 打印 GC 具体日志信息


-XX:SurvivorRatio 幸存者比例设置


-XX:NewRatio 新生代比例设置


-XX:MaxTenuringThreshold 进入老年代阈值设置

罕用参数:
“-XX:MetaspaceSize=128m”
“-XX:MaxMetaspaceSize=128m”
“-XX:SurvivorRatio=8”
“-Xms1024m”
“-Xmx1024m”
“-Xmn256m”
“-Xss256k”

退出移动版