環境変数から値を取得する方法を教えてください。
String[] extensions = {"xml", "java", "dat"};
現在、xml、java、dat ファイルを渡しています。これらの値を環境変数から取得したいと思います。
私はこれを試しました:
String[] extensions = {System.getenv("LIST")};
しかし、毎回null値を取得します。
環境変数から値を取得する方法を教えてください。
String[] extensions = {"xml", "java", "dat"};
現在、xml、java、dat ファイルを渡しています。これらの値を環境変数から取得したいと思います。
私はこれを試しました:
String[] extensions = {System.getenv("LIST")};
しかし、毎回null値を取得します。
System.getenv()は Map を返します。マップを反復して配列に入れることができる場所から。
Map<String, String> env = System.getenv();
// allocate an array with env.size()
for (String envName : env.keySet()) {
// add env.get(envName) to array.
}
PATH
および変数の場合CLASSPATH
、それらの従来の区切り記号を見つける必要があります。
道
String path = System.getEnv("PATH");
// See http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
String[] files = path.split(System.getProperty("path.separator"));
List<String> unescapedFiles = new ArrayList<>();
for (String file: files) {
// Exercise for the reader
String unquotedFile = ...;
String javaSlashedFile = ...;
unescapedFiles.add(javaSlashedFile);
}
return unescapedFiles;
ループは のようなファイル名を受け取り"C:\Program Files\perl\perl.exe"
、それらをC:/Program Files/perl/perl.exe
.
クラスパスには、より信頼性の高い代替手段があります。同じ Java チュートリアル ページには、システム プロパティ「java.class.path」もリストされています。java -cp *path*
これは、呼び出しとClass-Path
マニフェストを含む JAR ファイルを考慮に入れるため、環境変数よりも信頼性が高くなります。だから、行を交換してください
String path = System.getEnv("PATH");
と
String classPath = System.getProperty("java.class.path");
Java が環境変数を取得するには、取得する環境変数が必要です。これらは環境に由来する ため、環境変数の設定方法は環境 (オペレーティング システム) に依存します。
使用しているオペレーティング システムを指定しません。exec
環境がJVM を開始するための POSIX である場合、exec
関数の 1 つに環境値の一連の値を指定できます。
Unix シェルの場合、JVM を実行するステートメントで値を設定できます。
NAME=value java ...
または、JVM を実行する前にシェル スクリプトでエクスポートします。
NAME=value
export NAME
java ...
個々の環境変数に対して返される値は、常に文字列です。あなたの場合、文字列は「xml:java:dat」のようになります。この値を取得したら ( try System.getenv("DESIRED_ENVIRONMENT_VARIABLE_NAME_HERE")
)、個別の値に解析する必要があります。String.split メソッドを使用してみてください (おそらくstringVariableName.split(":")
)。
分割すると、文字列配列に値が格納されます (例: String[] values
)。