参考 http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#Options
java 命令行运行的语法如下:
java [ options ] class [ arguments ]
java [ options ] -jar file.jar [ arguments ]
这里记录 options 可以使用的选项
对于 boolean 型 options, -X:+<option> 表示打开,-XX:-<option> 表示关闭
对于 numeric 型 options, -X:<option>=<number>, number 可以包含 k,K,m,M,g,G 表示 KB,MB,GB
对于 string 型 options, -X:<option>=<string>
标准 options (无前缀) | |
-client | 以 client 模式运行 java 程序 |
-server | 以 server 模式运行 java 程序 |
client / server 模式说明: client 模式启动速度快,适合桌面应用 server 模式启动速度慢一点,但运行速度快,适合服务器使用 | |
-classpath classpath -cp classpath | 指定 class path |
-Dproperty=value | 设定系统参数 |
-jar | 指定要执行的 jar 文件 |
-javaagent:jarpath[=options] | 加载 java 代理 https://docs.oracle.com/javase/7/docs/api/java/lang/instrument/package-summary.html |
-agentlib:libname[=options] | 加载本地代理库 https://docs.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#starting |
-agentpath:pathname[=options] | 本地代理库路径 |
-verbose -verbose:class -verbose:gc -verbose:jni | 列出详细信息 列出加载的类 显示GC信息 显示JNI信息 |
-splash:imagepath | 指定启动画面 |
非标准 options(-X前缀,不稳定) | |
-X | 显示支持的非标准 options |
-Xint | 解释执行模式 |
-Xbatch | 禁用后台编译 |
-Xbootclasspath:bootclasspath | 指定用 ; 分隔的目录和 zip/jar 文件 设置搜索路径以引导类和资源 |
-Xbootclasspath/a:path | 指定用 ; 分隔的目录和 zip/jar 文件 附加在引导类路径末尾 |
-Xbootclasspath/p:path | 指定用 ; 分隔的目录和 zip/jar 文件 置于引导类路径之前 |
-Xcheck:jni | 对 JNI 函数执行额外的检查 |
-Xfuture | 执行严格的 class 文件格式检查 |
-Xnoclassgc | 禁用垃圾收集 |
-Xincgc | 启用增量垃圾收集 |
-Xloggc:file | 将 GC 状态记录在文件中 (带时间戳) |
-Xprof | 输出 cpu 配置文件数据 |
-Xrs | 减少 java vm 使用的操作系统信号 |
-Xverify:mode | 设置 bytecode 验证器的模式 |
-Xmnn | 设置新生代的大小 |
-Xmsn | 堆的初始大小 |
-Xmxn | 堆的最大大小 |
-Xssn | 线程栈大小 |
-XX:PermSize=n | 永久区初始大小 |
-XX:MaxPermSize=n | 永久区最大大小 |
-XX:NewRatio=n | 老年代 / 新生代 的比例,默认是 2 |
-XX:Newsize=n | 设置新生代的大小 |
-XX:SurvivorRatio=n | Eden/Survivor 的比例,默认是 8 |
-XX:PretenureSizeThresHold | 直接晋升到老年代的对象的大小,设置这个参数后,大于这个参数的对象将直接在老年代分配 |
-XX:MaxTenuringThreshold=n | 晋升到老年代的对象年龄。每个对象在坚持过一次 Minor GC 后,年龄加 1,当超时这个参数值时就进入老年代,默认值是 15 |
-XX:+HandlePromotionFailure | 是否允许分配担保失败,即老年代的剩余空间不足以应付新生代的整个 Eden 和 Survivor 区的所有对象都存活的极端情况 |
-XX:UseAdaptiveSizePolicy | 动态调整 Java 堆中各个区域的大小以及进入老年代的年龄 |
GC 相关 Options | |
-XX:-DisableExplicitGC | 禁用显式的垃圾收集,设置这个选项后, System.gc() 无效 |
-XX:-UseConcMarkSweepGC | 使用 ParNew + CMS + Serial Old 组合进行内存回收。Serial Old 收集器将作为 CMS 收集出现 Concurrent Mode Failure 失败后的后备收集器使用 |
-XX:-UseParallelGC | 使用 Parallel Scavenge + Serial Old(PS MarkSweep) 的组合进行内存回收 |
-XX:-UseParallelOldGC | 使用 Parallel Scavenge + Parallel Old 组合进行内存回收 |
-XX:-UseParNewGC | 使用 ParNew + Serial Old 收集器进行内存回收 |
-XX:-UseSerialGC | 使用 Serial + Serial Old 收集器进行内存回收 |
-XX:-UseG1GC | 使用 G1 |
-XX:GCTimeRatio | GC 时间占总时间的比率,默认值是 99,即允许 1% 的 GC 时间。仅在使用 parallel Scavenge 收集器时有效 |
-XX:MaxGCPauseMillis=n | 设置 GC 的最大停顿时间。仅在使用 Parallel Scavenge 收集器时有效 |
| |
-XX:CMSInitiatingOccupancyFraction=n | 设置 CMS 收集器在老年代空间被使用多少后触发垃圾收集。默认值是 68%。仅在使用 CMS 收集器时生效 |
-XX:+UseCMSCompactAtFullCollection | 设置 CMS 收集器在完成垃圾收集后是否启动一次内存碎片整理。仅在使用 CMS 收集器时生效。 1.8 中过期 |
-XX:CMSFullGCsBeforeCompaction=n | 设置 CMS 收集器在进行若干次垃圾收集后再启动一次内存碎片整理。仅在使用 CMS 收集器时生效。 1.8 中过期 |
| |
-XX:InitiatingHeapOccupancyPercent=n | 触发并发垃圾收集周期的整个堆空间的占用比例。它被垃圾收集使用,用来触发并发垃圾收集周期,基于整个堆的占用情况,不只是一个代上(比如:G1)。0值 表示’do constant GC cycles’。默认是45 |
-XX:ParallelGCThreads=n | 设置并行 GC 时,进行内存回收的线程数 |
-XX:ConcGCThreads=n | 并发垃圾收集器使用的线程数量,默认值根据Java虚拟机运行的平台有所变化 |
-XX:G1ReservePercent=n | 为了降低晋升失败机率设置一个假的堆的储备空间的上限大小,默认值是10 |
-XX:G1HeapRegionSize=n | 使用G1收集器,Java堆被细分成一致大小的区域。这设置个体的细分的大小。这个参数的默认值由工学意义上的基于堆的大小决定 |
调试类 | |
-XX:-CITime | Prints time spent in JIT Compiler. (Introduced in 1.4.0.) |
-XX:ErrorFile=./hs_err_pid<pid>.log | If an error occurs, save the error data to this file. (Introduced in 6.) |
-XX:HeapDumpPath=./java_pid<pid>.hprof | Path to directory or filename for heap dump. Manageable. (Introduced in 1.4.2 update 12, 5.0 update 7.) |
-XX:-HeapDumpOnOutOfMemoryError | Dump heap to file when java.lang.OutOfMemoryError is thrown. Manageable. (Introduced in 1.4.2 update 12, 5.0 update 7.) |
-XX:OnError="<cmd args>;<cmd args>" | Run user-defined commands on fatal error. (Introduced in 1.4.2 update 9.) |
-XX:OnOutOfMemoryError="<cmd args>; <cmd args>" | Run user-defined commands when an OutOfMemoryError is first thrown. (Introduced in 1.4.2 update 12, 6) |
-XX:-PrintClassHistogram | Print a histogram of class instances on Ctrl-Break. Manageable. (Introduced in 1.4.2.) The jmap -histo command provides equivalent functionality. |
-XX:-PrintConcurrentLocks | Print java.util.concurrent locks in Ctrl-Break thread dump. Manageable. (Introduced in 6.) The jstack -l command provides equivalent functionality. |
-XX:-PrintCommandLineFlags | Print flags that appeared on the command line. (Introduced in 5.0.) |
-XX:-PrintCompilation | Print message when a method is compiled. |
-XX:-PrintGC | Print messages at garbage collection. Manageable. |
-XX:-PrintGCDetails | Print more details at garbage collection. Manageable. (Introduced in 1.4.0.) |
-XX:-PrintGCTimeStamps | Print timestamps at garbage collection. Manageable (Introduced in 1.4.0.) |
-XX:-PrintTenuringDistribution | Print tenuring age information. |
-XX:-PrintAdaptiveSizePolicy | Enables printing of information about adaptive generation sizing. |
-XX:-TraceClassLoading | Trace loading of classes. |
-XX:-TraceClassLoadingPreorder | Trace all classes loaded in order referenced (not loaded). (Introduced in 1.4.2.) |
-XX:-TraceClassResolution | Trace constant pool resolutions. (Introduced in 1.4.2.) |
-XX:-TraceClassUnloading | Trace unloading of classes. |
-XX:-TraceLoaderConstraints | Trace recording of loader constraints. (Introduced in 6.) |
-Xloggc:<filename> | Log GC verbose output to specified file. The verbose output is controlled by the normal verbose GC flags. |
-XX:-UseGCLogFileRotation | Enabled GC log rotation, requires -Xloggc. |
-XX:NumberOfGClogFiles=1 | Set the number of files to use when rotating logs, must be >= 1. The rotated log files will use the following naming scheme, <filename>.0, <filename>.1, ..., <filename>.n-1. |
-XX:GCLogFileSize=8K | The size of the log file at which point the log will be rotated, must be >= 8K. |