背景
项目需求中涉及java调用.bat文件进行图像处理,先直接上简略版程序
1 public voiddraw(){2
3 //调用bat脚本进行图像处理
4 Process process = null;5 InputStream in = null;6 try{7 process = Runtime.getRuntime().exec("startup.bat");8
9 //输出测试10 //in = process.getInputStream();11 //String line;12 //BufferedReader br = new BufferedReader(new InputStreamReader(in));13 //while ((line = br.readLine()) != null) {14 //System.out.println(line);15 //}16
17 //等待
18 process.waitFor();19
20 } catch(Exception e) {21
22 } finally{23 process.destroy();24 }25 }
JAVA使用遇到的问题描述
一般需要调用系统命令时,大部分人第一反应肯定是使用Runtime.getRuntime().exec(command)返回一个process对象,再调用process.waitFor()来等待命令执行结束,获取执行结果。
调试的时候发现很奇怪的现象,process.waitFor();一直没有结束,导致线程阻塞再次,强行关闭程序后,发现图像处理只进行了一部分。
于是打算打印process的输出,看是否是图像脚本出现异常。
在启用输出测