JVM 启动参数
目录
java 启动参数分类:
- 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容
- 非标准参数(-X),默认JVM实现这些参数的功能,但是并不保证所有JVM实现都满足,且不保证向后兼容
- 非Stable参数(-XX),此类参数各个JVM实现会有所不同,将来可能会随时取消,需要慎重使用
标准参数
|
|
用法:java [options] <主类> [args...]
(执行类)
或 java [options] -jar <jar 文件> [args...]
(执行 jar 文件)
或 java [options] -m <模块>[/<主类>] [args...]
java [options] --module <模块>[/<主类>] [args...]
(执行模块中的主类)
或 java [options] <源文件> [args]
(执行单个源文件程序)
将主类、源文件、-jar <jar 文件>、-m 或
--module <模块>/<主类> 后的参数作为参数
传递到主类。
其中,选项包括:
-cp <目录和 zip/jar 文件的类搜索路径>
-classpath <目录和 zip/jar 文件的类搜索路径>
--class-path <目录和 zip/jar 文件的类搜索路径>
使用 : 分隔的, 用于搜索类文件的目录, JAR 档案
和 ZIP 档案列表。
-p <模块路径>
--module-path <模块路径>...
用 : 分隔的目录列表, 每个目录
都是一个包含模块的目录。
-d <module name>
-D<名称>=<值>
设置系统属性
-verbose:[class|module|gc|jni]
为给定子系统启用详细输出
--version 将产品版本输出到输出流并退出
--help 将此帮助消息输出到输出流
-X 将额外选项的帮助输出到错误流
--help-extra 将额外选项的帮助输出到输出流
-ea[:<程序包名称>...|:<类名>]
-enableassertions[:<程序包名称>...|:<类名>]
按指定的粒度启用断言
-da[:<程序包名称>...|:<类名>]
-disableassertions[:<程序包名称>...|:<类名>]
按指定的粒度禁用断言
-esa | -enablesystemassertions
启用系统断言
-dsa | -disablesystemassertions
禁用系统断言
-agentlib:<库名>[=<选项>]
加载本机代理库 <库名>, 例如 -agentlib:jdwp
另请参阅 -agentlib:jdwp=help
-agentpath:<路径名>[=<选项>]
按完整路径名加载本机代理库
-javaagent:<jar 路径>[=<选项>]
加载 Java 编程语言代理, 请参阅 java.lang.instrument
要为长选项指定参数, 可以使用 --<名称>=<值> 或 --<名称> <值>。
非标准参数 -X
|
|
-Xlog:<opts> 配置或启用采用 Java 虚拟
机 (Java Virtual Machine, JVM) 统一记录框架进行事件记录。使用 -Xlog:help
可了解详细信息。
-Xloggc:<file> 将 GC 状态记录在文件中(带时间戳)。
此选项已过时,可能会在
将来的发行版中删除。它将替换为 -Xlog:gc:<file>。
-Xmixed 混合模式执行(默认值)
-Xmn<size> 为年轻代(新生代)设置初始和最大堆大小
(以字节为单位)
-Xms<size> 设置初始 Java 堆大小
-Xmx<size> 设置最大 Java 堆大小
-Xnoclassgc 禁用类垃圾收集
-Xss<size> 设置 Java 线程堆栈大小
|
|
初始 Java 堆大小 为物理内存的 1/64(最小 8 MB),最大为 1 GB 的物理内存大小
- server 模式下的时候才是 min(1G, 物理内存的四分之一) 64位OS为物理内存四分之一
- client 模式 min(1G, 物理内存的四分之一)
-Xss
设置线程堆栈大小。线程堆栈是为每个 Java 线程分配的内存区域,供其内部使用。这是线程存储其本地执行状态的地方。
Format: -Xss<size>[g|G|m|M|k|K]
Platform | Default |
---|---|
Windows x86_64 | 128 KB |
Linux x86_64 | 256 KB |
非 Stable 参数 -XX
HotSpot JVM 提供给了两个新的参数,在JVM启动后,在命令行中可以输出所有XX参数和值。
|
|
参数数据类型 | 参数名 | 默认值 | 说明 |
---|---|---|---|
uintx | InitialSurvivorRatio | 8 | Eden/Survivor 的比例为 8 |
uintx | NewRatio | 2 | Old区/Young区的内存比例 默认2 |
垃圾回收的频率,耗时等信息,于是可以设置JVM参数 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:./gc.log
|
|
GCeasy 是一款在线的GC日志分析器,可以通过GC日志分析进行内存泄露检测、GC暂停原因分析、JVM配置建议优化等功能。