java调用.bat文件

用到java调用.bat文件,并且不能显示dos的黑框,并将dos控制台的信息在java控制台输出。结果问题就出在New_AIO_Install_ERP_SQL_Serv... 用到java调用.bat文件,并且不能显示dos的黑框,并将dos控制台的信息在java控制台输出。结果问题就出在New_AIO_Install_ERP_SQL_Server_Express.bat是错误的,一旦此bat文件错误,java控制台写不出错误信息,程序也不能结束了。但是双击此bat文件就可以报错,大侠们,小弟求助,不胜感激

public class TestCmd {

public static void dirOpt() {
System.out.println("------------------dirOpt()--------------------");
Process process;
try {
//执行命令
process = Runtime.getRuntime().exec("C:\\downloads\\New_AIO_Install_ERP_SQL_Server_Express.bat");
//取得命令结果的输出流
InputStream fis = process.getInputStream();
//用一个读输出流类去读
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line = null;
//逐行读取输出到控制台
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String args[]) {
//testWinCmd();
dirOpt();
}

}
应该先判断bat文件是否运行结束 在继续下面的读取结果和处理

就是跳不出while循环了,怎么判断bat是否结束??? 大家帮帮忙啊

自己解决了,虽然没有满意答案,分还是给了吧,感谢
Process process;
List list=new ArrayList();
String line = null;
try {
//执行命令
process = Runtime.getRuntime().exec("C:\\downloads\\1111.bat");
//取得命令结果的输出流
InputStream fis = process.getInputStream();
//用一个读输出流类去读
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
//int c;
//逐行读取输出到控制台
while ((line = br.readLine()) != null) {
System.out.println(line);
}
if(process.waitFor()!=0){
System.out.println("失败失败失败失败失败失败失败失败");
}
} catch (Exception e) {
e.printStackTrace();
}
展开
 我来答
miniapp16e43ddfde28
2010-07-30 · TA获得超过639个赞
知道小有建树答主
回答量:737
采纳率:0%
帮助的人:529万
展开全部
应该先判断bat文件是否运行结束 在继续下面的读取结果和处理
钟声远无声5575
2010-07-30 · TA获得超过1646个赞
知道小有建树答主
回答量:1010
采纳率:0%
帮助的人:1409万
展开全部
其本上是 Runtime.getRuntime().exec("cmd /c bat文件")
cmd后面可以有很多参数,也可以有很多定向输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式