各位大侠帮帮我。。。 自己写了一段小程序,是利用Runtime.getRuntime().exec();起了一个进程,想在这个程序启动之后进行下一步操作。但是由于每台计算机启动各种程序的响应时间不同,所以有时候没等该进程启动下一步的操作就开始进行了。请教各位大牛怎么才能判断这个进行的界面已经出来了啊?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参照这个试试private int exec(String command, String[] envp) throws IOException, InterruptedException { Runtime rt = Runtime.getRuntime(); Process proc = rt.exec(command, null); InputStream stderr = proc.getErrorStream(); InputStream stdinf = proc.getInputStream(); InputStreamReader isr = new InputStreamReader(stderr); InputStreamReader isr2 = new InputStreamReader(stdinf); BufferedReader br = new BufferedReader(isr); BufferedReader br2 = new BufferedReader(isr2); String line = null; System.out.println("<ERROR>"); while ((line = br.readLine()) != null) System.out.println(line); System.out.println("</ERROR>"); line = null; System.out.println("<INFO>"); while ((line = br2.readLine()) != null) System.out.println(line); System.out.println("</INFO>"); int exitVal = proc.waitFor(); System.out.println("Process exitValue: " + exitVal); return exitVal; } 进程监听可能纯java无法办到如果启动后本身会在控制台有一个启动完毕的提示 则可以通过读取控制台信息来判断 个人觉得每一个方法执行完都会有一个返回值。可以捕获这个返回值来判断是否执行完。最近看shell里,可以用&&,来联合执行两个命令,例如:sort -u filename&&echo "over!" 3楼还是2楼啊,呵呵大概的意思就是程序等待runtime执行完才做下一步事我建议你看不懂的话可以参考一下google,这样你更能了解一下Runtime各个API的机制:) 注释我就不写了,有用的就给分,哈 java解析Xml文件的问题? 关于i的奇怪问题... runtime的路径问题 一个String 怎么样判断他只有数字,运算符和相应的A,B,C,D,E字符 其他都能存在 想学习排序算法 bak文件是干什么用的?与编写的JAVA文件相同啊? Java中有可以读取CPU的利用率的接口么? 新手发问~~~ 中文乱码问题?!!! java se怎么整合JdbcTemplate 二次删除 大家讨论一下为什么许多类都要重写equals()方法呢?
InterruptedException {
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(command, null);
InputStream stderr = proc.getErrorStream();
InputStream stdinf = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stderr);
InputStreamReader isr2 = new InputStreamReader(stdinf);
BufferedReader br = new BufferedReader(isr);
BufferedReader br2 = new BufferedReader(isr2);
String line = null;
System.out.println("<ERROR>");
while ((line = br.readLine()) != null)
System.out.println(line);
System.out.println("</ERROR>");
line = null;
System.out.println("<INFO>");
while ((line = br2.readLine()) != null)
System.out.println(line);
System.out.println("</INFO>");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
return exitVal;
}
如果启动后本身会在控制台有一个启动完毕的提示 则可以通过读取控制台信息来判断
大概的意思就是程序等待runtime执行完才做下一步事
我建议你看不懂的话可以参考一下google,这样你更能了解一下Runtime各个API的机制:) 注释我就不写了,有用的就给分,哈