Java에서 매개 변수를 필요로하는 배치 파일을 실행하는 데 문제가 있습니다. 이러한 매개 변수는 공백을 포함 할 수 있으므로 따옴표로 묶어야합니다. 일부 매개 변수에는 !
과 같은 특수 문자가 포함될 수 있으므로 Linux에서도 동일한 작업을 수행해야합니다.매개 변수를 사용하여 실행
비 기능적 Windows 코드 :
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"\"mybat.bat\"",
"\"param 1\"",
"\"param 2\"",
"\"param 3\""
);
비 기능적 리눅스 코드 :
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"
);
어떻게해야합니까?
당신이 그 정확한 이유에 대해 따옴표로 묶어하지 않았다? 마지막 스 니펫으로 왜 그걸하지 않니? – zneak
처음 두 조각이 작동하도록 노력하고 있습니다. 세 번째 스 니펫은 mybat.bat에 6 개의 매개 변수를 전달하며, 세 개만 찾으면됩니다. –