我在Java中执行需要参数的批处理文件时遇到了困难.这些参数可能包含空格,因此我需要将它们用引号括起来.我还需要为Linux做同样的事情,因为有些参数可能包含特殊字符,例如!.
非功能性Windows代码:
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"\"mybat.bat\"",
"\"param 1\"",
"\"param 2\"",
"\"param 3\""
);
Run Code Online (Sandbox Code Playgroud)
非功能性Linux代码:
ProcessBuilder pb = new ProcessBuilder(
"bash",
"-c",
"'myshellscript.sh'",
"'param 1'",
"'param 2'",
"'param 3'"
);
Run Code Online (Sandbox Code Playgroud)
我知道我应该添加如下Windows示例的参数,但这不适用于空格:
ProcessBuilder pb = new ProcessBuilder(
"cmd",
"/c",
"mybat.bat param 1 param 2 param 3"
);
Run Code Online (Sandbox Code Playgroud)
该怎么做?