在運行 Java(TM) 程式時,您可以選擇希望使用的方式。所有方式都驗證代碼並建立 Java 程式對象來存放預驗證格式的程式。可使用下列任何一種方式:
- 解釋方式
- 直接處理
- “及時”(JIT)編譯
- “及時”(JIT)編譯並直接處理
選擇方式 |
詳細資料 |
解釋方式 |
在運行時對每個位元組碼進行解釋。 有關以解釋方式運行 Java 程式的資訊,參見運行 Java(RUNJVA)命令。 |
直接處理 |
方法的機器指令在首次調用該方法期間產生並儲存下來,以供程式下次運行時使用。並且,整個系統還共用一個副本。 有關使用直接處理方式來運行 Java 程式的資訊,參見運行 Java(RUNJVA)命令。 |
“及時”(JIT)編譯 |
方法的機器指令在首次調用該方法期間產生,並在 JAVA 虛擬機器的運行期間得到儲存。 要使用“及時”編譯器,需要將編譯器值設定為 jitc。可以通過添加環境變數或設定 java.compiler 系統屬性來設定該值。請從以下列表中選擇一種方法來設定編譯器值:
在設定此值之後,JIT 編譯器便在運行 Java 代碼之前對所有 Java 代碼執行最佳化。 |
“及時”(JIT)編譯並直接處理 |
最常見的使用“及時”(JIT)編譯器的方法是使用 jit_de 選項。當使用此選項運行時,已對直接處理進行了最佳化的程式會以直接處理方式運行。未對直接最佳化進行最佳化的程式以 JIT 方式運行。 要將 JIT 方式與直接處理方式配合使用,您需要將編譯器值設定為 jitc_de。可以通過添加環境變數或設定 java.compiler 系統屬性來設定該值。請從以下列表中選擇一種方法來設定編譯器值:
在設定此值之後,將使用為直接處理而建立的類檔案的 Java 程式。如果該 Java 程式不是為直接處理建立的,則 JIT 在運行之前最佳化類檔案。有關更多資訊,參見“及時”編譯器與直接處理的比較。 |
運行 Java 程式的方法有三種(CL、QSH 和 JNI)。每一種方法都有唯一的方法來指定方式。下表顯示了如何完成此操作。
方式 |
CL 命令 |
QShell 命令 |
JNI 調用 API |
解釋 |
INTERPRET(*YES) |
-Djava.compiler=NONE -interpret |
os400.run.mode="interpret" |
DE |
INTERPRET(*NO) |
-Djava.compiler=NONE |
- os400.run.mode=
"program_created=pc"
- os400.create.type=
"direct"
|
JIT |
INTERPRET(*JIT) |
-Djava.compiler="jitc" |
os400.run.mode="jitc" |
JIT_DE(預設) |
INTERPRET(*OPTIMIZE) OPTIMIZE(*JIT) |
-Djava.compiler="jitc_de" |
os400.run.mode="jitc_de" |