java怎么样判断一个进程是否已近结束?
我写了一个小程序,这个程序执行到一半的时候会调用一个外部程序进行相关操作,我必须等这个外部程序运行结束了以后才能执行以下的语句。请问有什么函数可以检测这个外部进程是否已近...
我写了一个小程序,这个程序执行到一半的时候会调用一个外部程序进行相关操作,我必须等这个外部程序运行结束了以后才能执行以下的语句。请问有什么函数可以检测这个外部进程是否已近结束?
import javax.swing.JOptionPane;
public class RunMain {
private static int tasklist1 = -1;
public static void main(String[] args)
{
try {
String cmd1 = "cmd.exe /c tasklist";
process p =Runtime.getRuntime().exec(cmd1);
StringBuffer out = new StringBuffer();
byte[] b = new byte[1024];
for (int n; (n = p.getInputStream().read(b)) != -1;) {
out.append(new String(b, 0, n));
}
tasklist1=out.toString().indexOf("QQ.exe");//检查QQ进程
} catch (Exception e1) {
e1.printStackTrace();
}
if(tasklist1==-1){
//程序在进程中没有发现
}else{
JOptionPane.showMessageDialog(null, "程序已经打开!", "警告", 1);
}
}
}
在论坛中找到,忘记是谁发的了,真是不好意思,在这里感谢他了,这个完全符合我的要求
我选最佳答案的那个方法我试过了,那个程序是要自己启动记事本的,然后等待记事本程序结束
而我发的这个是等待本来就存在的进程结束。 展开
import javax.swing.JOptionPane;
public class RunMain {
private static int tasklist1 = -1;
public static void main(String[] args)
{
try {
String cmd1 = "cmd.exe /c tasklist";
process p =Runtime.getRuntime().exec(cmd1);
StringBuffer out = new StringBuffer();
byte[] b = new byte[1024];
for (int n; (n = p.getInputStream().read(b)) != -1;) {
out.append(new String(b, 0, n));
}
tasklist1=out.toString().indexOf("QQ.exe");//检查QQ进程
} catch (Exception e1) {
e1.printStackTrace();
}
if(tasklist1==-1){
//程序在进程中没有发现
}else{
JOptionPane.showMessageDialog(null, "程序已经打开!", "警告", 1);
}
}
}
在论坛中找到,忘记是谁发的了,真是不好意思,在这里感谢他了,这个完全符合我的要求
我选最佳答案的那个方法我试过了,那个程序是要自己启动记事本的,然后等待记事本程序结束
而我发的这个是等待本来就存在的进程结束。 展开
6个回答
展开全部
以记事本程序为例
Process p = Runtime.getRuntime().exec("notepad.exe");
try {
p.waitFor();//等待notepad.exe的结束
}
catch(InterruptedException ex) {
System.err.println("ERROR");
System.exit(1);
}
//继续自己的程序
Process p = Runtime.getRuntime().exec("notepad.exe");
try {
p.waitFor();//等待notepad.exe的结束
}
catch(InterruptedException ex) {
System.err.println("ERROR");
System.exit(1);
}
//继续自己的程序
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
isAlive() 可以判断线程是否终止
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过process的流来判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Thread.interrupted()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
进程?不大懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询