我有这种愚蠢的未知行为。在我的应用程序中,我需要启动一个 Java 进程来执行某些任务。所以在下面做:
1a) String[] ls = {"cmd",
"/C",
"\"C:\\t e m p\\run time\\jre\\bin\\java.exe\"",
"-jar",
"Canon.jar"};
ProcessBuilder p = new ProcessBuilder(ls);
p.redirectErrorStream();
Process pp = p.start();
以上工作完美。但是,如果说完整路径Canon.jar
包含空格,则它不起作用。基本上我需要在路径quotes
周围添加。Canon.jar
IE
1b) String[] ls = {"cmd","/C",
"\"C:\\Prac\\t e m p\\run time\\jre\\bin\\java.exe\"","-jar",
"\"C:\\Prac\\t e m p\\Canon.jar\""};
即使包含引号,上述内容仍然不起作用。它说:
结尾 'C:\Users\Jatin\Documents\Prac\t' 未被识别为内部或外部命令、可运行程序或批处理文件。
最大的问题是,以下也不起作用:
1c) String[] ls = {"cmd","/C",
"\"C:\\Prac\\t e m p\\run time\\jre\\bin\\java.exe\"","-jar",
"\"C:\\Prac\\temp\\Canon.jar\""};//contains no white space.
它仍然说同样的错误。Canon.jar
当路径不包含空格时,它怎么能再说一遍。为什么它在工作java.exe
时说路径有问题1a
。