如何在java中停止ProcessBuilder启动的进程
我使用Java中的ProcessBuilder启动进程。可以启动多个进程。如何停止进程如何在java中停止ProcessBuilder启动的进程,java,scala,Java,Scala,我使用Java中的ProcessBuilder启动进程。可以启动多个进程。如何停止进程 public void terminalExecute(String builder) throws InterruptedException { System.out.println(builder); String[] splits = builder.split(" "); System.out.println(splits.length); Pro
public void terminalExecute(String builder) throws InterruptedException
{
System.out.println(builder);
String[] splits = builder.split(" ");
System.out.println(splits.length);
ProcessBuilder pb = new ProcessBuilder(splits[0],splits[1],splits[2],splits[3],splits[4],splits[5],splits[6],splits[7]);
Process p = null ;
pb.redirectErrorStream(true);
try {
p = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String s = "";
while((s = in.readLine()) != null){
System.out.println(s);
}
int status = p.waitFor();
System.out.println("Exited with status: " + status);
} catch (IOException e) {
e.printStackTrace();
}
}
在另一个类中,我调用此函数,如下所示:
String cmd ="java -Xmx3024m -XX:MaxPermSize=512m -Xms1024m -cp "+ ConfReader.getAFFJarPath()+" core.StrWorkflow "+new BigInteger(serviceRequest.getBytes());
ProcessExecutor procExec = new ProcessExecutor();
procExec.terminalExecute(cmd);
如何在此类中获取进程id?start()
方法的ProcessBuilder
返回一个进程
实例。您可以对其调用destroy()
方法
请参阅:添加代码以显示您首先是如何启动流程的,您尝试了什么?您从中获得了对象吗?如果是这样,您可以通过对其调用方法“destroy()”来杀死它。//编辑:您从方法中获得了一个流程对象(processyourprocess=terminalExecute([…])。只需调用您的进程。destroy()<代码>销毁()返回错误退出值。有没有办法让流程优雅地终止?