Java 中的_JAVA_OPTIONS 環境變數
- Java 選項的型別
-
Java 中的
_JAVA_OPTIONS
環境變數 -
Java 中的
JAVA_TOOL_OPTIONS
環境變數 -
Java 中
JAVA_TOOL_OPTIONS
和JDK_JAVA_OPTIONS
之間的區別 - まとめ
_JAVA_OPTIONS
是一個環境變數,可用於將 Java 選項傳遞給 JVM 程序。傳遞的 Java 選項的處理方式與 Java 虛擬機器的命令列引數類似。
在本文中,我們將瞭解不同型別的 Java 選項。我們還將看到 _JAVA_OPTIONS
和 JAVA_TOOL_OPTIONS
,JDK_JAVA_OPTIONS
和 JAVA_TOOL_OPTIONS
環境變數之間的區別。
Java 選項的型別
Java 定義了三種不同型別的選項。Java 根據它們在不同 Java 版本中的支援及其用法來區分選項。
讓我們瞭解每個選項的類別。
- 標準選項——Java 保證所有 Java 版本都支援標準選項。Java 允許將這些選項用於常見操作,例如:
- 設定
classpath
變數。 - 檢查 Java Runtime Environment (JRE) 的版本。
- 切換 verbose 輸出等。
- 設定
- 額外選項 - Java 不保證所有版本都支援這些型別的選項。這些選項專門與 JavaHotSpot 虛擬機器相關,並且可以更改。
Java 使用這些選項來設定特定的變數。 - 高階選項——Java 為開發者提供了高階選項。開發人員可以使用這些選項來調整 JVM、JRE、JIT 和垃圾收集器。
有四種不同型別的高階選項。這些給出如下。
- 執行時選項 - 開發人員可以使用這些選項來調整 JVM 的執行時間。
- JIT 編譯器選項 - 開發人員可以使用這些選項來控制即時 (JIT) Java 編譯器。
- 可維護性選項——Java 定義了這些用於除錯和收集系統資訊的選項。
- 垃圾收集選項 - 開發人員可以使用這些選項控制 Java 的垃圾收集機制。
Java 中的 _JAVA_OPTIONS
環境變數
Java 定義了幾個環境變數,以便在程序執行期間將 Java 選項傳遞給 JVM。_JAVA_OPTIONS
就是這樣一個環境變數。
Java 將使用此環境變數傳遞的引數與命令列引數類似。
事實上,根據 Oracle 的 Java 文件,Java 提供了這些選項,以便可以將命令列引數傳遞給那些無法使用直接命令列的執行環境中的程式。
你可以傳遞多個引數,其中每個引數由空格分隔。如果你的引數包含空格,則應將其括在引號內。
使用 _JAVA_OPTIONS
時應該小心,因為如果引數無效,程式的執行將失敗。
讓我們看一個傳遞變數選項以啟用日誌跟蹤的示例。
export _JAVA_OPTIONS='-Dsun.java2d.trace=log'
Java 中的 JAVA_TOOL_OPTIONS
環境變數
JAVA_TOOL_OPTIONS
是 _JAVA_OPTIONS
的繼承者。_JAVA_OPTIONS
環境變數在 JVM 規範中沒有標準化。因此,不同的供應商對此變數有自己的名稱。
但是,JAVA_TOOL_OPTIONS
變數在 JVM 規範中是標準化的。你應該總是喜歡它而不是 _JAVA_OPTIONS
。
這是因為它可以更好地處理空格和引號。
Java 中 JAVA_TOOL_OPTIONS
和 JDK_JAVA_OPTIONS
之間的區別
JAVA_TOOL_OPTIONS
和 JDK_JAVA_OPTIONS
非常相似,因為 Java 允許使用這兩個環境變數將 Java 選項傳遞給 JVM。
正如我們已經看到的,使用 JAVA_TOOL_OPTIONS
傳遞引數的所有規則和方法也適用於 JDK_JAVA_OPTIONS
。
但是,這些變數之間的主要區別如下所示。
- Java 啟動器讀取使用
JDK_JAVA_OPTIONS
傳遞的引數。因此,我們不能傳遞導致啟動器退出的選項並指定 JAR 或主類。
因此,我們可以使用這個變數來傳遞在啟動器級別執行時使用的選項。
- Java 編譯器和 JAR 也讀取
JAVA_TOOL_OPTIONS
。因此,我們可以使用這個變數來設定選項來調整執行。
例如,我們可以使用此變數設定標誌。
まとめ
本文討論了 Java 的 JAVA_TOOL_OPTIONS
、JDK_JAVA_OPTIONS
和 _JAVA_OPTIONS
環境變數。我們還討論了使用這些環境變數的區別。