1

環境変数から値を取得する方法を教えてください。

String[] extensions = {"xml", "java", "dat"};

現在、xml、java、dat ファイルを渡しています。これらの値を環境変数から取得したいと思います。

私はこれを試しました:

String[] extensions = {System.getenv("LIST")};

しかし、毎回null値を取得します。

4

4 に答える 4

3

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.
}
于 2013-06-14T16:36:07.240 に答える
2

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");
于 2013-06-14T18:03:37.317 に答える
0

Java が環境変数を取得するには、取得する環境変数が必要です。これらは環境に由来する ため、環境変数の設定方法は環境 (オペレーティング システム) に依存します。

使用しているオペレーティング システムを指定しません。exec環境がJVM を開始するための POSIX である場合、exec関数の 1 つに環境値の一連の値を指定できます。

Unix シェルの場合、JVM を実行するステートメントで値を設定できます。

 NAME=value java ...

または、JVM を実行する前にシェル スクリプトでエクスポートします。

 NAME=value
 export NAME
 java ...
于 2013-06-14T18:34:59.810 に答える
0

個々の環境変数に対して返される値は、常に文字列です。あなたの場合、文字列は「xml:java:dat」のようになります。この値を取得したら ( try System.getenv("DESIRED_ENVIRONMENT_VARIABLE_NAME_HERE"))、個別の値に解析する必要があります。String.split メソッドを使用してみてください (おそらくstringVariableName.split(":"))。

分割すると、文字列配列に値が格納されます (例: String[] values)。

于 2013-06-14T16:48:12.820 に答える