此命令通过批处理文件工作:
c:\tomcat\bin\tomcat7.exe //DS//"A TestService"
同样的陈述不适用于ProcessBuilder:
public static void removeService() throws Exception
{
String tomcatBinPath = "c:\\tomcat\\bin";
File binFolder = new File(tomcatBinPath);
String[] parms= new String[4];
parms[0] = "cmd";
parms[1] = "/c";
parms[2] = tomcatBinPath + "\\tomcat7.exe";
parms[3] = "//DS//\"A TestService\"";
ProcessBuilder pb = new ProcessBuilder(parms);
ProcessBuilder newPb = pb.directory(binFolder);
newPb = newPb.redirectErrorStream(true);
Process proc = newPb.start();
int result = proc.waitFor();
System.out.println(result);
}
结果始终为9
,服务不已删除。
注意:
问题似乎是服务名称中的SPACE / BLANK
如果service-name不包含SPACES / BLANKS,我对ProcessBuilder没有任何问题!
的问题:
如何在这种情况下使用ProcessBuilder(服务名称中的SPACES / BLANKS)?