Java 在继续编码之前,等待终端结果
我正在向Servlet发送请求。在这个Servlet中,我有一个代码,它执行终端并在那里运行一些命令。我希望我的代码在响应我的请求之前等待终端进程。我怎么办 下面您可以看到我的代码:Java 在继续编码之前,等待终端结果,java,servlets,terminal,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
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});
您可以使用:
waitFor()
允许您等待流程完成李>
ErrorStream
和InoutStream
分别允许获取执行的输出和错误exitValue
表示流程的完成方式。exitValue 0用于正常完成您必须从流程中获取
OutputStream
和ErrorStream
。任何写入正常标准输出的内容都会进入OutputStream,任何写入标准输出的内容都会进入ErrorStream。有关更多信息,请参阅进程上的JavaDoc:您是否知道Process send=Runtime.getRuntime().exec(新字符串[]{“sh”,“c”,“fileNameShort+”.jar/tmp/“+fileNameShort+”.class;/home/ubuntu/android-x86.rund.sh-cp/tmp/“+fileNameShort+”.jar“+fileNameShort})代码>将在服务器端执行terminal@JqueryLearner是,它在服务器端终端中执行。我希望服务器响应等待该进程;这一行显示了一个错误-多个标记-未处理的异常类型InterruptedException-行断点:UploadImage[line:258]-doPost(HttpServletRequest,HttpServletResponse)我希望您知道如何处理它。。用谷歌搜索你的异常,你会发现的。
System.out.println("Waiting for process...");
send.waitFor();
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..");