Java 參數


java -help

用法: java [-options] class [args...]
(執行類)
或 java [-options] -jar jarfile [args...]
(執行 jar 文件)
其中選項包括:
-d32 使用 32 位數據模型 (如果可用)
-d64 使用 64 位數據模型 (如果可用)
-server 選擇 "server" VM,默認 VM 是 server.
   設置jvm使server模式,特點是啟動速度比較慢,但運行時性能和內存管理效率很高,適用於生產環境。在具有64位能力的jdk環境下將默認啟用該模式,而忽略-client參數。 -cp
<目錄和 zip/jar 文件的類搜索路徑> -classpath <目錄和 zip/jar 文件的類搜索路徑> 用 ; 分隔的目錄, JAR 檔案 和 ZIP 檔案列表, 用於搜索類文件。 -D<名稱>=<> 設置系統屬性 -verbose:[class|gc|jni] 啟用詳細輸出 -version 輸出產品版本並退出 -version:<> 需要指定的版本才能運行 -showversion 輸出產品版本並繼續 -jre-restrict-search | -no-jre-restrict-search 在版本搜索中包括/排除用戶專用 JRE -? -help 輸出此幫助消息 -X 輸出非標准選項的幫助 -ea[:<packagename>...|:<classname>] -enableassertions[:<packagename>...|:<classname>] 按指定的粒度啟用斷言 -da[:<packagename>...|:<classname>] -disableassertions[:<packagename>...|:<classname>] 禁用具有指定粒度的斷言 -esa | -enablesystemassertions 啟用系統斷言 -dsa | -disablesystemassertions 禁用系統斷言 -agentlib:<libname>[=<選項>] 加載本機代理庫 <libname>, 例如 -agentlib:hprof 另請參閱 -agentlib:jdwp=help 和 -agentlib:hprof=help
  
其中libname為本地代理庫文件名,默認搜索路徑為環境變量PATH中的路徑,options為傳給本地庫啟動時的參數,多個參數之間用逗號分隔。
  在Windows平台上jvm搜索本地庫名為libname.dll的文件,在linux上jvm搜索本地庫名為libname.so的文件,搜索路徑環境變量在不同系統上有所不同,比如Solaries上就默認搜索LD_LIBRARY_PATH。
-agentpath:<pathname>[=<選項>]

按完整路徑名加載本機代理庫
   按全路徑裝載本地庫,不再搜索PATH中的路徑;其他功能和agentlib相同;更多的信息待續,在后續的JVMTI部分會詳述。
-javaagent:<jarpath>[=<選項>] 加載 Java 編程語言代理, 請參閱 java.lang.instrument -splash:<imagepath> 使用指定的圖像顯示啟動屏幕 有關詳細信息, 請參閱 http://www.oracle.com/technetwork/java/javase/documentation/index.html。

 Java  -X

C:\Users\Administrator>java -X
    -Xmixed           混合模式執行 (默認)
    -Xint             僅解釋模式執行
    -Xbootclasspath:<用 ; 分隔的目錄和 zip/jar 文件>
                      設置搜索路徑以引導類和資源
    -Xbootclasspath/a:<用 ; 分隔的目錄和 zip/jar 文件>
                      附加在引導類路徑末尾
    -Xbootclasspath/p:<用 ; 分隔的目錄和 zip/jar 文件>
                      置於引導類路徑之前
    -Xdiag            顯示附加診斷消息
    -Xnoclassgc       禁用類垃圾收集
    -Xincgc           啟用增量垃圾收集
    -Xloggc:<file>    將 GC 狀態記錄在文件中 (帶時間戳)
    -Xbatch           禁用后台編譯
    -Xms<size>        設置初始 Java 堆大小
    -Xmx<size>        設置最大 Java 堆大小
    -Xss<size>        設置 Java 線程堆棧大小
    -Xprof            輸出 cpu 配置文件數據
    -Xfuture          啟用最嚴格的檢查, 預期將來的默認值
    -Xrs              減少 Java/VM 對操作系統信號的使用 (請參閱文檔)
    -Xcheck:jni       對 JNI 函數執行其他檢查
    -Xshare:off       不嘗試使用共享類數據
    -Xshare:auto      在可能的情況下使用共享類數據 (默認)
    -Xshare:on        要求使用共享類數據, 否則將失敗。
    -XshowSettings    顯示所有設置並繼續
    -XshowSettings:all
                      顯示所有設置並繼續
    -XshowSettings:vm 顯示所有與 vm 相關的設置並繼續
    -XshowSettings:properties
                      顯示所有屬性設置並繼續
    -XshowSettings:locale
                      顯示所有與區域設置相關的設置並繼續

-X 選項是非標准選項, 如有更改, 恕不另行通知。

  

三、JVM非Stable參數(-XX)

Java 6(update 21oder 21之后)版本, HotSpot JVM 提供給了兩個新的參數,在JVM啟動后,在命令行中可以輸出所有XX參數和值。

-XX:+PrintFlagsFinal and -XX:+PrintFlagsInitial
  • 1

讀者可以使用以下語句輸出所有的參數和默認值

java -XX:+PrintFlagsInitial -XX:+PrintFlagsInitial>>1.txt

由於非State參數非常的多,因此這里就不列出所有參數進行講解。只介紹我們比較常用的。

Java HotSpot VM中-XX:的可配置參數列表進行描述;

這些參數可以被松散的聚合成三類:

行為參數(Behavioral Options):用於改變jvm的一些基礎行為;

性能調優(Performance Tuning):用於jvm的性能調優;

調試參數(Debugging Options):一般用於打開跟蹤、打印、輸出等jvm參數,用於顯示jvm更加詳細的信息;

 

行為參數(功能開關)

-XX:-DisableExplicitGC  禁止調用System.gc();但jvm的gc仍然有效

-XX:+MaxFDLimit 最大化文件描述符的數量限制

-XX:+ScavengeBeforeFullGC   新生代GC優先於Full GC執行

-XX:+UseGCOverheadLimit 在拋出OOM之前限制jvm耗費在GC上的時間比例

-XX:-UseConcMarkSweepGC 對老生代采用並發標記交換算法進行GC

-XX:-UseParallelGC  啟用並行GC

-XX:-UseParallelOldGC   對Full GC啟用並行,當-XX:-UseParallelGC啟用時該項自動啟用

-XX:-UseSerialGC    啟用串行GC

-XX:+UseThreadPriorities    啟用本地線程優先級

性能調優

-XX:LargePageSizeInBytes=4m 設置用於Java堆的大頁面尺寸

-XX:MaxHeapFreeRatio=70 GC后java堆中空閑量占的最大比例

-XX:MaxNewSize=size 新生成對象能占用內存的最大值

-XX:MaxPermSize=64m 老生代對象能占用內存的最大值

-XX:MinHeapFreeRatio=40 GC后java堆中空閑量占的最小比例

-XX:NewRatio=2  新生代內存容量與老生代內存容量的比例

-XX:NewSize=2.125m  新生代對象生成時占用內存的默認值

-XX:ReservedCodeCacheSize=32m   保留代碼占用的內存容量

-XX:ThreadStackSize=512 設置線程棧大小,若為0則使用系統默認值

-XX:+UseLargePages  使用大頁面內存

調試參數

-XX:-CITime 打印消耗在JIT編譯的時間

-XX:ErrorFile=./hs_err_pid<pid>.log 保存錯誤日志或者數據到文件中

-XX:-ExtendedDTraceProbes   開啟solaris特有的dtrace探針

-XX:HeapDumpPath=./java_pid<pid>.hprof  指定導出堆信息時的路徑或文件名

-XX:-HeapDumpOnOutOfMemoryError 當首次遭遇OOM時導出此時堆中相關信息

-XX:OnError="<cmd args>;<cmd args>" 出現致命ERROR之后運行自定義命令

-XX:OnOutOfMemoryError="<cmd args>;<cmd args>"  當首次遭遇OOM時執行自定義命令

-XX:-PrintClassHistogram    遇到Ctrl-Break后打印類實例的柱狀信息,與jmap -histo功能相同

-XX:-PrintConcurrentLocks   遇到Ctrl-Break后打印並發鎖的相關信息,與jstack -l功能相同

-XX:-PrintCommandLineFlags  打印在命令行中出現過的標記

-XX:-PrintCompilation   當一個方法被編譯時打印相關信息

-XX:-PrintGC    每次GC時打印相關信息

-XX:-PrintGC Details    每次GC時打印詳細信息

-XX:-PrintGCTimeStamps  打印每次GC的時間戳

-XX:-TraceClassLoading  跟蹤類的加載信息

-XX:-TraceClassLoadingPreorder  跟蹤被引用到的所有類的加載信息

-XX:-TraceClassResolution   跟蹤常量池

-XX:-TraceClassUnloading    跟蹤類的卸載信息

-XX:-TraceLoaderConstraints 跟蹤類加載器約束的相關信息

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM