戻る

ネイティブ実行時に環境変数にアクセス

ネイティブ実行環境は通常の Java アプリケーションと同じ方法で環境変数にアクセスします。

デモを実行する

例えば、環境変数を繰り返し処理してコマンドライン引数として渡される文字列を含む環境変数をプリントアウトする Java アプリケーションを実行します。

前提条件

GraalVM JDK がインストールされていることを確認してください。簡単に始めるには SDKMAN! をお試しください。その他のインストール オプションについては Downloads セクション をご覧ください。

  1. 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));
                 }
             }
         }
     }
    
  2. 次の内容のようにファイルをコンパイルしてネイティブ実行ファイルを作成します
     javac EnvMap.java
    
     native-image EnvMap
    
  3. ネイティブアプリケーションを実行して「HELLO」などのコマンドライン引数を渡します。一致する名前の環境変数がないため、出力が表示されません。
     ./envmap HELLO
     <no output>
    
  4. 「HELLOWORLD」という名前の新しい環境変数を作成して、それに対して「Hello World!」という値を指定します。(bash シェルを使用している場合は、次の例に従ってください。)ネイティブ実行ファイルを再度実行します。環境変数と一致するものについては、名前と値が正しくプリントアウトされます。
     export HELLOWORLD='Hello World!'
    
     ./envmap HELLO
    

    予期された出力が受信されるはずです

     HELLOWORLD=Hello World!
    

お問い合わせ