前言
在看Btrace源碼的時候,瞭解到一些陌生的啓動命令參數,例如-Xbootclasspath等,之前也曾遇到過,但並沒有去進一步全面瞭解,在此則進行介紹。
簡介
Java 的啓動參數包括標準的參數(運行環境參數)和非標準的參數(JVM實現支持的參數)。
標準的參數
參數 |
描述 |
-client
|
client模式啓動 |
-server
|
Service模式啓動 |
-
-classpath
classpath
-
-cp
classpath
|
加入classpath |
-
-D
property
=
value
|
加入到system property 中 |
-
-d32
-
-d64
|
啓動的操作系統位數 |
-
-enableassertions
[:<package name>"..." | :<class name> ]
-
-ea
[:<package name>"..." | :<class name> ]
|
啓動斷言 |
-
-disableassertions
[:<package name>"..." | :<class name> ]
-
-da
[:<package name>"..." | :<class name> ]
|
禁止斷言 |
-
-enablesystemassertions
-
-esa
|
啓動系統斷言 |
-
-disablesystemassertions
-
-dsa
|
禁止系統斷言 |
-jar
|
啓動jar |
-
-verbose
-
-verbose:class
|
打印載入的class信息 |
-verbose:gc
|
打印GC的收集時的信息 |
-verbose:jni
|
打印jni調用native的方法行爲 |
-version
|
打印java的版本信息後退出 |
-showversion
|
打印java的版本信息,但不退出 |
-
-?
-
-help
|
幫助 |
-X
|
打印非標準的參數信息 |
非標準的參數
參數
|
描述 |
-Xint
|
設置jvm以解釋模式執行,所有字節碼解釋執行 |
-Xbatch
|
關閉後臺代碼編譯。正常情況下,VM會在後臺編譯代碼,運行的方法將以解釋的模式運行,知道後臺編譯完成。該參數則強制編譯在前臺執行,等所有編譯完才能運行代碼。 |
-Xdebug
|
啓動debugger。具體可以參考
jdb description
|
-
-Xbootclasspath:
bootclasspath
|
指定用冒號分割的文件目錄、jar或者zip文件,加入到boot class。用來代替java2 SDK中的boot class 文件。常被用來覆蓋rt.jar的類。一般情況不會使用。
|
-
-Xbootclasspath/a:
path
|
和Xbootclasspath
參數用途一樣,只是該選項是追加path到bootstrap class path中,而非替換。 |
-
-Xbootclasspath/p:
path
|
和Xbootclasspath/a
參數用途一樣,只是追加的目錄將優先於默認的bootstrap class path |
-Xcheck:jni
|
在執行native方法前進行檢查。JVM會校驗傳遞給jni方法的參數在執行jni請求前。在native中一個非法的數據將會導致JVM終止。如果開啓該參數,將會降低性能。 |
-Xfuture
|
對class文件進行嚴格檢查。目的爲了向後兼容。推薦開發人員使用該參數。 |
-Xnoclassgc
|
關閉class 的gc功能 |
-Xincgc
|
開啓增量gc的功能,默認是關閉的。有助於減少gc的停頓時間,但可能會導致大概10%的性能損耗。 |
-
-Xloggc:
file
|
和verbose:gc參數類似,只是將gc信息打印在文件而不是控制檯。和verbose:gc不同的是輸出的信息中帶有時間。 |
-
-Xms
n
|
指定初始堆的大小,默認單位爲k。可以指定爲m |
-
-Xmx
n
|
指定堆得最大的大小 |
-
-Xss
n
|
設置線程棧的大小 |
-Xprof
|
跟蹤正在運行的程序,並輸出跟蹤信息到控制檯。該參數主要用在開發環境,而不是生產環境。 |
-Xrunhprof
[:help
][:<suboption>=<value>,...
]
|
開啓cpu、heap或者監視器的性能分析。具體介紹,可以參考
java -Xrunhprof:help
|
-Xrs
|
減少JVM對操作系統信號(signals)的使用。 |
關於JVM的其他參數,後續進行補充。