由於標題說明了我試圖用多個以null結尾的文件名設置一個環境變量。通過ProcessBuilder在環境變量中設置以null結尾的字符串
我的代碼如下所示:
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"
有沒有辦法來實現這一目標?
您可能不需要添加空值。當它們到達您正在運行的命令時,它們將被轉換爲空字符串。 – rghome
好嗎?我試圖實現的是一個varibale,它的值如下所示:filename1 \ 0filename2 \ 0filename2 \ 0 ... filenameN \ 0 –
這不是一個好主意,因爲O/S可能會將null視爲結尾的字符串。如果您想要帶外分隔符,請使用不同的控制字符。 – rghome