我正在向Servlet发布请求。在那个Servlet中,我有一个执行终端并在那里运行一些命令的代码。我希望我的代码在响应我的请求之前等待终端进程。我该如何管理?
下面你可以看到我的代码:
Process send = Runtime.getRuntime().exec(new String[] {"sh", "-c", fileNameShort + ".jar /tmp/"+ fileNameShort +".class; /home/ubuntu/android-x86.rund.sh -cp /tmp/"+ fileNameShort +".jar " + fileNameShort});
答案 0 :(得分:2)
您可以使用Process#waitFor()
:
System.out.println("Waiting for process...");
send.waitFor();
答案 1 :(得分:0)
Process process = Runtime.getRuntime().exec("tasklist");
BufferedReader reader =
new BufferedReader(new InputStreamReader(process.getInputStream()));
BufferedReader reader =
new BufferedReader(new InputStreamReader(process.getErrorStream()));
System.out.println("Waiting for process completion..");
int exitValue = process.waitFor();
System.out.println("Process is done..");
waitFor()
,您可以等待该过程完成。 ErrorStream
和InoutStream
可以获得输出&分别执行错误exitValue
表示该过程的完成方式。 exitValue 0用于正常完成