◀返回
在原生可執行檔中於執行時期存取環境變數
原生可執行檔存取環境變數的方式與一般 Java 應用程式相同。
執行示範
例如,執行一個 Java 應用程式,該程式會迭代您的環境變數,並印出包含作為命令列引數傳遞的字串的變數。
先決條件
請確保您已安裝 GraalVM JDK。最簡單的入門方式是使用 SDKMAN!。如需其他安裝選項,請造訪下載區。
- 將以下原始碼儲存到名為 EnvMap.java 的檔案中
import java.util.Map; public class EnvMap { public static void main (String[] args) { var filter = args.length > 0 ? args[0] : ""; Map<String, String> env = System.getenv(); for (String envName : env.keySet()) { if(envName.contains(filter)) { System.out.format("%s=%s%n", envName, env.get(envName)); } } } }
- 編譯檔案並建置原生可執行檔,如下所示
javac EnvMap.java
native-image EnvMap
- 執行原生應用程式並傳遞命令列引數,例如「HELLO」。應該沒有任何輸出,因為沒有符合名稱的環境變數。
./envmap HELLO <no output>
- 建立一個名為「HELLOWORLD」的新環境變數,並給予它值「Hello World!」。(如果您使用的是
bash
shell,請參閱以下範例。)現在,再次執行原生可執行檔 — 它將正確印出符合的環境變數的名稱和值。export HELLOWORLD='Hello World!'
./envmap HELLO
您應該會收到預期的輸出
HELLOWORLD=Hello World!