実行時のネイティブ実行可能ファイルの環境変数へのアクセス
ネイティブ実行可能ファイルは、通常の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
シェルを使用している場合は、次の例に従います。)ここで、ネイティブ実行可能ファイルを再度実行します。一致する環境変数の名前と値が正しく出力されます。export HELLOWORLD='Hello World!'
./envmap HELLO
予想される出力が表示されるはずです:
HELLOWORLD=Hello World!