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
命令的官方手冊。有時標準選項被描述為可能會發生變化。