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"

你可能感兴趣的:(java运维)