Мне трудно выполнить пакетный файл в Java, который ожидает параметров. Эти параметры могут содержать пробелы, поэтому мне нужно их обернуть в кавычки. Мне также нужно будет сделать то же самое для Linux, потому что некоторые из параметров могут содержать специальные символы, такие как !
.
Нефункциональный код Windows:
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"\"mybat.bat\"",
"\"param 1\"",
"\"param 2\"",
"\"param 3\""
);
Нефункциональный код Linux:
ProcessBuilder pb = new ProcessBuilder(
"bash",
"-c",
"'myshellscript.sh'",
"'param 1'",
"'param 2'",
"'param 3'"
);
Я понимаю, что я должен добавлять параметры, такие как пример Windows ниже, но это не будет работать с пробелами:
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"mybat.bat param 1 param 2 param 3"
);
Как это сделать?