キャプションの状態として、ヌルで終了する複数のファイル名で環境変数を設定しようとしています。ProcessBuilder経由で環境変数にヌル終了文字列を設定する
ProcessBuilder pb = new ProcessBuilder(execCmd);
Map<String, String> env = pb.environment();
env.clear();
String storedFiles = "";
Iterator<Attributes> storedSequence = info.getSequence().iterator();
while (storedSequence.hasNext()) {
storedFiles += storedSOPSequence.next().getFilename() + "\0";
}
env.put("StoredFiles", storedFiles);
try {
pb.start();
} catch (Exception e) {
}
しかし、私は、次のexcepionに実行します:
私のコードは次のようになります
Exception in thread "pool-1-thread-2" java.lang.IllegalArgumentException:
Invalid environment variable value: "/tmp/tmp.DXrJMdJmbW/53cd50f9"
これを達成する方法はありますか?
おそらく、nullを追加する必要はありません。実行中のコマンドに到達すると、それらはヌル終了文字列に変換されます。 – rghome
私が達成しようとしているのは、次のような値です。filename1 \ 0filename2 \ 0filename2 \ 0 ... filenameN \ 0 –
これは、O/Sがnullを最後と解釈する可能性があるため、文字列の帯域外セパレータを使用する場合は、別の制御文字を使用します。 – rghome