昨天写了一个,Java启动Tomcat的问题!用到Runtime.getRuntime().exec()这个函数,这个函数还真有用!当它把传给它的控制台命令丢给shell执行后,它就立即返回了!我起初像先停止Tomcat而后在启动,发现不行!试过用sleep()来通过延时来执行。在网上找了下为了确保Runtime.getRuntime().exec()执行结束再执行下一步呢,注意到Runtime.exec()指令返回了一个Process对象。通过Process.WorkFor();来得到程序完成后在推出。
java.lang.Process process = java.lang.Runtime.getRuntime().exec("");//执行命令生成cube
try {
process.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Process的方法waitFor()介绍,取自API文档:
waitFor
public abstract int waitFor()
throws InterruptedException导致当前线程等待,如果必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。
返回:
进程的出口值。根据惯例,0 表示正常终止。
抛出:
InterruptedException - 如果当前线程在等待时被另一线程 中断,则停止等待,抛出 InterruptedException