当前位置: 技术问答>java相关
关于如何判断程序运行完成的问题,在线等候
来源: 互联网 发布时间:2015-08-28
本文导语: 如下: import java.io.*; public class HWLoop { public static void main(String[] args) { try { Runtime.getRuntime().exec("D:\process.exe"); } catch(Exception e) { System.out.print("error "+e); } } } 比如上面...
如下:
import java.io.*;
public class HWLoop
{ public static void main(String[] args)
{ try
{
Runtime.getRuntime().exec("D:\process.exe");
}
catch(Exception e)
{ System.out.print("error "+e);
}
}
}
比如上面的process.exe是一个oracle备份程序,
如何在接下来的语句判断process.exe是否已经执行完成,开始接下来的工作?
import java.io.*;
public class HWLoop
{ public static void main(String[] args)
{ try
{
Runtime.getRuntime().exec("D:\process.exe");
}
catch(Exception e)
{ System.out.print("error "+e);
}
}
}
比如上面的process.exe是一个oracle备份程序,
如何在接下来的语句判断process.exe是否已经执行完成,开始接下来的工作?
|
Runtime.getRuntime().exec("D:\process.exe");
返回一个Process对象,这是一个抽象类,它有几个方法,其中waitFor()返回一个整数,为零时表示Process结束,还有public abstract int exitValue()方法。
自己写一个子类就行了。
返回一个Process对象,这是一个抽象类,它有几个方法,其中waitFor()返回一个整数,为零时表示Process结束,还有public abstract int exitValue()方法。
自己写一个子类就行了。
|
试试这个:
import java.io.*;
public class HWLoop
{
public static void main(String args[])
{
Process p = null;
try{
p =Runtime.getRuntime().exec("D:\process.exe");
//p.waitFor();
System.out.println(p.exitValue());
}
catch(Exception e){
System.err.println( "Program has not exited.");
try{
p.waitFor();
}catch(InterruptedException ee){
}
System.err.println( "Program has exited.");
}
//return;
}
}
import java.io.*;
public class HWLoop
{
public static void main(String args[])
{
Process p = null;
try{
p =Runtime.getRuntime().exec("D:\process.exe");
//p.waitFor();
System.out.println(p.exitValue());
}
catch(Exception e){
System.err.println( "Program has not exited.");
try{
p.waitFor();
}catch(InterruptedException ee){
}
System.err.println( "Program has exited.");
}
//return;
}
}
|
定义一个线程检测这个程序是否运行,如果运行,等待,否则,开始接下来的工作
|
System.exit(0);