如何实现:在代码执行完一个外部应用程序后,再继续往下执行,就象在一个单线程里运行一样---------------
代码片段:在这个片段里,在执行sentgz.exe时,也完成了写文件。但我希望先执行sentgz.exe,再写文件。String k = new String("D:\\program\\sentgz.exe");
try{
java.lang.Runtime.getRuntime().exec(k);
}
catch (Exception e){
e.printStackTrace();
}try{
PrintWriter pw = new PrintWriter(new FileOutputStream(StrFileName));
pw.print(WriteMe);
pw.close();
}
catch (Exception e){
e.printStackTrace();
}
代码片段:在这个片段里,在执行sentgz.exe时,也完成了写文件。但我希望先执行sentgz.exe,再写文件。String k = new String("D:\\program\\sentgz.exe");
try{
java.lang.Runtime.getRuntime().exec(k);
}
catch (Exception e){
e.printStackTrace();
}try{
PrintWriter pw = new PrintWriter(new FileOutputStream(StrFileName));
pw.print(WriteMe);
pw.close();
}
catch (Exception e){
e.printStackTrace();
}
p.waitFor();
主线程A:
.
B b = new B(this);
把执行sentgz.exe放在另一个线程B去操作;
B.start();
A.wait();
~~~~~~~~
在线程B中,当操作结束后,A的引用.notifyall();
synchronized(this){
public void run(){}
}
p.waitFor();
或者你自己捕获它的输出流,让它输出什么时,就表示结束.