Mam trudności z wykonywaniem pliku wsadowego w języku Java, który oczekuje parametrów. Te parametry mogą zawierać spacje, więc muszę je zawijać w cudzysłów. Będę również musiał zrobić to samo dla Linuksa, ponieważ niektóre parametry mogą zawierać znaki specjalne, takie jak !
.Wykonanie z parametrami
niefunkcjonalne kod Windows:
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"\"mybat.bat\"",
"\"param 1\"",
"\"param 2\"",
"\"param 3\""
);
niefunkcjonalne kod Linux:
ProcessBuilder pb = new ProcessBuilder(
"bash",
"-c",
"'myshellscript.sh'",
"'param 1'",
"'param 2'",
"'param 3'"
);
Rozumiem, że należy dodać parametry jak na przykładzie poniżej systemu Windows, ale nie będzie to pracować ze spacjami:
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"mybat.bat param 1 param 2 param 3"
);
Jak należy to zrobić?
Nie ująć je w cudzysłów dla tego dokładnie powodu? Dlaczego nie robisz tego dla swojego ostatniego fragmentu? – zneak
Próbuję wykonać pierwsze dwa fragmenty kodu. Trzeci fragment przekazuje 6 parametrów do pliku mybat.bat, gdy szukam tylko trzech. –