to chongkai,确实Process类是抽象类,但是runtime.exec()是会返回一个Process的子类的实体,既然有实体了,就什么都有啦。to muiz(用户中文昵称),上面的很多回答都已经很清楚了,也有一些示例代码,相信你能使用多种方式达到你的目的的。
to takecare(大厅):Process process=Runtime.getRuntime().exec("xxxx");编译器看到的process只是一个Process实例,它不可能知道这是某个Process子类的实例。那么这一行process.waitFor(); 怎么能编译通过呢?虽然我在JB里试了一下,确实没有报错。但我还是糊涂。
while(true)
{
if(文件存在)
{break;}
else
{sleep(一定时间);}
}
如果是该程序的另外一个线程创建的,可以用wait/notify。
如果是其它进程创建,那也只能pooling了。
Process process=Runtime.getRuntime().exec("xxxx");
process.waitFor(); //主进程就等在这里了,直到process退出。
用process waitfor()是等不到外部进程运行完毕的.
想想OO里多态的思想。