CodeGym /Java Blog /ランダム /Javaで環境変数を取得する
John Squirrels
レベル 41
San Francisco

Javaで環境変数を取得する

ランダム グループに公開済み

環境変数とは何ですか?

すべてのコンピューター プログラミング言語には、プログラムで使用される情報を含む固有のメモリ位置を割り当てる変数と定数が含まれています。定数値は変更できませんが、変数の値は変更できます。環境変数はキーと値のペアであり、その値はプログラムの外部で設定され、プログラムはいつでもその参照を利用できます。キーと値は両方とも文字列です。環境変数の設定と使用の規則は、オペレーティング システムとコマンド ライン インタープリター間で常に異なります。これらは、システム上で実行されているすべてのアプリケーションで常にグローバルに使用できます。


PATH = "C:\\WINDOWS\system32;"
ここで、Path はプログラムの外部で設定される環境変数ですが、Windows 上で実行される各プログラムで使用できます。

使用事例

ご存知のとおり、プログラムの変更はすべて実行またはサーバーに再デプロイする必要があり、運用環境で望ましくない副作用が生じる可能性があります。したがって、環境変数を導入する主な目的は、この実行と展開を何度も制限することです。

Javaで環境変数を取得するには?

Javaで環境変数を取得する方法を見てみましょう。Java では、Java プログラムで環境変数を取得する 2 つの方法が提供されています。
  1. System.getenv()

  2. System.getProperty()

それでは、両方を 1 つずつ詳しく見てみましょう。

System.getenv()

System.getenv ()メソッドはすべての環境変数を取得するために使用されますが、特定のキー名がパラメータとして指定されている場合は、その値が取得されます。 java.lang.System.getenv() は常に、使用可能なすべての環境変数の文字列マップを返します。

宣言


public static String getenv(String name)
ここで、name は、値が必要なキーを指定するために使用されるパラメーターです。

戻る

キーの値、または指定されたパラメータがどのキーにも関連付けられていない場合は null を返します。パラメーターが渡されない場合は、使用可能なすべてのキーと値のペアが返されます。


import java.util.Map;
public class SystemGetEnvDemo {

   public static void main(String[] args) {

      // getting value for environment variable "PATH"
      System.out.print("System.getenv(PATH) = ");
      System.out.println(System.getenv("PATH"));

      // getting value for environment variable "TEMP" resulting in null
      System.out.print("System.getenv(TEMP) = ");
      System.out.println(System.getenv("TEMP"));
      
      //getting all environment variables using System.getenv()
      Map<String, String> env = System.getenv();
        for (String envName : env.keySet()) {
            System.out.format("%s=%s%n",
                              envName,
                              env.get(envName));
        }
   }
}

出力

System.getenv(PATH) = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin System.getenv(TEMP) = null PATH=/usr/local /sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PROGRAMIZ_COMPILER_SERVICE_HOST=10.0.10.151 KUBERNETES_PORT=tcp://10.0.0.1:443 PROGRAMIZ_COMPILER_PORT=tcp://10.0.10.151 :80 TERM=xterm PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=10.0.0.1 PS1= PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP_PORT=80 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP _ADDR=10.0.14.233 PROGRAMIZ_COMPILER_PORT_80_TCP=tcp://10.0.10.151:80 PROGRAMIZ_COMPILER_PORT_80_TCP_PROTO=tcp PWD=/app KUBERNETES_PORT_443_TCP=tcp://10.0.0.1 :443 PROGRAMIZ_COMPILER_PORT_80_TCP_ADDR=10.0.10.151 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT=tcp://10.0.14.233:80 KUBERNETES_PORT_443_TCP_ADDR=10.0.0.1 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_SERV ICE_HOST=10.0。14.233 PROGRAMIZ_COMPILER_PORT_80_TCP_PORT=80 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_PORT=443 PROGRAMIZ_COMPILER_SERVICE_PORT=80 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_PORT_80_TCP=tcp://10.0.14 .233:80 PROGRAMIZ_COMPILER_WEB_UI_SEVICE_SERVICE_PORT=80 HOSTNAME=programiz-compiler-deployment-58bfd77477-dtlq8 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 HOME=/home/compiler
オペレーティング システムによっては、異なる出力が得られる場合があります。

System.getProperty()

Java でjava.lang.System.getProperty()を使用して、このメソッドにパラメータとして渡された指定されたキーの値を取得することもできます。このメソッドは、システム プロパティ、つまりローカル システムと構成に関する情報を取得するために使用されます。環境変数が Java のシステム プロパティとして存在する場合は、プラットフォームに依存しない方法で値を取得するためにSystem.getProperty()を使用することをお勧めします。プロパティの値は実行時に変更できますが、環境変数の場合は変更できません。

宣言


public String getProperty(String name)
ここで、name は、値が必要なキーを指定するために使用されるパラメーターです。

戻る

キーの値または null を返します。


import java.lang.*; 
import java.util.Properties; 

public class SystemGetPropertyDemo { 
    public static void main(String[] args) 
    { 
        // getting username system property 
       // using System.getProperty in Java
        System.out.println("user.name: " +  System.getProperty("user.name")); 
        // getting property with key home resulting in null
        // calling system.getproperty()
        System.out.println("home: " + System.getProperty("home")); 
        // getting name of Operating System 
        System.out.println("os.name: " + System.getProperty("os.name")); 
    }
}

出力

user.name: コンパイラホーム: null os.name: Linux

結論

ここまでで、Java での環境変数の概要と取得方法、その目的、および環境変数を取得するためのメソッドの使用方法を理解できたと思います。遠慮なく練習して、さらにサポートが必要なときはいつでも戻ってください。楽しく学習しましょう!
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION