Java 選項
java 命令支援多種選項:
- 
所有選項都以單個連字元或減號( -)開頭:不支援將--用於long選項的 GNU / Linux 約定。
- 
選項必須出現在 <classname>或-jar <jarfile>引數之前才能被識別。它們之後的任何引數都將被視為要傳遞給正在執行的 Java 應用程式的引數。
- 
不以 -X或-XX開頭的選項是標準選項。你可以依賴所有 Java 實現 1 來支援任何標準選項。
- 
以 -X開頭的選項是非標準選項,可以從一個 Java 版本撤回到下一個 Java 版本。
- 
以 -XX開頭的選項是高階選項,也可能被撤銷。
使用 -D 設定系統屬性
-D<property>=<value> 選項用於在系統 Properties 物件中設定屬性。可以重複此引數以設定不同的屬性。
記憶體,堆疊和垃圾收集器選項
設定堆,PermGen 和堆疊大小中記錄了控制堆和堆疊大小的主要選項。 (編者注:垃圾收集器選項應在同一主題中描述。)
啟用和禁用斷言
-ea 和 -da 選項分別啟用和禁用 Java assert 檢查:
- 預設情況下禁用所有斷言檢查。
- -ea選項可以檢查所有斷言
- -ea:<packagename>...可以檢查包和所有子包中的斷言。
- -ea:<classname>...可以檢查類中的斷言。
- -da選項禁用所有斷言的檢查
- -da:<packagename>...禁用檢查包和所有子包中的斷言。
- -da:<classname>...禁止檢查類中的斷言。
- -esa選項可以檢查所有系統類。
- -dsa選項禁用檢查所有系統類。
選項可以組合。例如。
$ # Enable all assertion checking in non-system classes 
$ java -ea -dsa MyApp
$ # Enable assertions for all classes in a package except for one.
$ java -ea:com.wombat.fruitbat... -da:com.wombat.fruitbat.Brickbat MyApp
請注意,啟用斷言檢查可能會改變 Java 程式設計的行為。
- 它一般會使應用程式變慢。
- 它可能導致特定方法花費更長的時間來執行,這可能會改變多執行緒應用程式中的執行緒的時間。
- 它可以引入偶然發生的關係,這可能導致記憶異常消失。
- 錯誤實現的 assert語句可能會產生不必要的副作用。
選擇 VM 型別
-client 和 -server 選項允許你在兩種不同形式的 HotSpot VM 之間進行選擇:
- 客戶端表單針對使用者應用程式進行了調整,並提供更快的啟動。
- 伺服器表單針對長時間執行的應用程式進行了調整。在 JVM預熱期間需要更長的捕獲統計資訊,這允許 JIT 編譯器更好地優化本機程式碼。
預設情況下,如果可能,JVM 將以 64 位模式執行,具體取決於平臺的功能。-d32 和 -d64 選項允許你明確選擇模式。
1 - 檢視 java 命令的官方手冊。有時標準選項被描述為可能會發生變化。