在继续执行代码之前等待终端结果

时间:2013-12-16 12:02:39

标签: java servlets terminal

我正在向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}); 

2 个答案:

答案 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..");
  1. 方法为waitFor(),您可以等待该过程完成。
  2. ErrorStreamInoutStream可以获得输出&分别执行错误
  3. exitValue表示该过程的完成方式。 exitValue 0用于正常完成