类型一: 标准参数选项
1.1-特点
1.2-各种选项
运行java或者java -help可以看到所有的标准选项
选项包括:
- -d32 使用32位数据模型(如果可用)
- -d64 使用64位数据模型(如果可用)
- -server 选择”server”VM,默认VM是server.
- -cp<目录和 zip/jar文件的类搜索路径>
- -classpath<目录和 zip/jar文件的类搜索路径>
- 用﹔分隔的目录,JAR档案
- 和 ZIP档案列表,用于搜索类文件。
- -D<名称>=<值> 设置系统属性
- -verbose: [classlgcljni]
- 启用详细输出
- -version 输出产品版本并退出
- -version:<值>
- 警告:此功能已过时,
- 将在未来发行版中删除。
- 需要指定的版本才能运行
- -showversion 输出产品版本并继续
- -jre-restrict-search | -no-jre-restrict-search
- 警告:此功能已过时,将在未来发行版中删除。
- 在版本搜索中包括/排除用户专用JRE
- -?-help 输出化帮助消息
- -X 输出非标准选项的帮助
- -ea[ :
. ..| : ] - -enableassertions [ :
… | : ] - 按指定的粒度启用断言
- -da[ :
. . .| : ] - -disableassertions [ :
. ..| : ] 禁用具有指定粒度的断言 - -esa | -enablesystemassertions 启用系统断言
- -dsa | -disablesystemassertions 禁用系统断言
- -agentlib:
[=<选项>] - 加载本机代理库
,例如 -agentlib:hprof - 另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
- 加载本机代理库
- -agentpath :
[=<选项>] 按完整路径名加载本机代理库 - -javaagent :
[=<选项>] 加载Java 编程语言代理,请参阅java.lang.instrument - -splash:
使用指定的图像显示启动屏幕
有关详细信息,请参阅
http://www.oracle.com/technetwork/java/javase/documentation/index.htm
1.3-补充内容:-server 与 -client
Hotspot JVM有两种模式,分别是server和client,分别通过-server和-client模式设置
- 在32位Windows系统上,默认使用client类型的JVM。要想使用Server模式,则机器配置至少有2个以上的CPU和2G以上的物理内存。client模式适用于对内存要求较小的桌面应用程序,默认使用Serial串行垃圾收集器
- 64位机器上只支持server模式的JVM,适用于需要大内存的应用程序,默认使用并行垃圾收集器
关于server和client的官网介绍为:
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/server-class.html
类型二: -X参数选项
2.1-特点
- 非标准化参数
- 功能还是比较稳定的。但官方说后续版本可能会变更以
- -X开头
2.2-各种选项
-Xmixed 混合模式执行(默认)
-Xint 仅解释模式执行
-Xbootclasspath:<用 ; 分隔的目录和 zip/jar 文件>
设置引导类和资源的搜索路径
-Xbootclasspath/a:<用 ; 分隔的目录和 zip/jar 文件>
附加在引导类路径末尾
-Xbootclasspath/p:<用 ; 分隔的目录和 zip/jar 文件>
置于引导类路径之前
-Xdiag 显示附加诊断消息
-Xnoclassgc 禁用类垃圾收集
-Xincgc 启用增量垃圾收集
-Xloggc:将 GC 状态记录在文件中(带时间戳)
-Xbatch 禁用后台编译
-Xms设置初始 Java 堆大小
-Xmx设置最大 Java 堆大小
-Xss设置 Java 线程堆栈大小
-Xprof 输出 cpu 分析数据
-Xfuture 启用最严格的检查,预计会成为将来的默认值
-Xrs 减少 Java/VM 对操作系统信号的使用(请参阅文档)
-Xcheck:jni 对 JNI 函数执行其他检查
-Xshare:off 不尝试使用共享类数据
-Xshare:auto 在可能的情况下使用共享类数据(默认)
-Xshare:on 要求使用共享类数据,否则将失败。
-XshowSettings 显示所有设置并继续
-XshowSettings:system
(仅限 Linux)显示系统或容器
配置并继续
-XshowSettings:all
显示所有设置并继续
-XshowSettings:vm 显示所有与 vm 相关的设置并继续
-XshowSettings:properties
显示所有属性设置并继续
-XshowSettings:locale
显示所有与区域设置相关的设置并继续
-X 选项是非标准选项。如有更改,恕不另行通知。
2.3-JVM的JIT编译模式相关的选项
-Xint
-Xcomp
-Xmixed
混合模式,默认模式,让JIT根据程序运行的情况,有选择地将某些代码编译成本地代码
2.4-特别地
-Xmx -Xms -Xss属于XX参数?
-Xms
-Xmx
-Xss
类型三: -XX参数选项
2.1-特点
举例:
-XX:+UseParallelGC 选择垃圾收集器为并行收集器
-XX:+UseG1GC 表示启用G1收集器
-XX:+UseAdaptiveSizePolicy 自动选择年轻代区大小和相应的Survivor区比例
非Boolean类型格式(key-value类型)
子类型1: 数值型格式-XX:
number表示数值,number可以带上单位,比如: ‘m’ 、‘M’表示兆,‘k’、‘K’表示Kb,’g’、’G’表示g(例如32k跟32768是一样的效果)
例如:
-XX:NewSize=1024m 表示设置新生代初始大小为1024兆
-XX:MaxGCPauseMillis=500 表示设置GC停顿时间:500毫秒
-XX:GCTimeRatio=19 表示设置吞吐量
-XX:NewRatio=2 表示新生代与老年代的比例
子类型2: 非数值型格式-XX:
例如:
-XX:HeapDumpPath=/usr/local/heapdump. hprof用来指定heap转存文件的存储路径。
2.4-特别地
-XX:+PrintFlagsFinal
输出所有参数的名称和默认值
默认不包括Diagnostic和口Experimental的参数
可以配合 -XX:+UnlockDiagnosticVMOptions 和 -XX:UnlockExperimentalVMOptions使用