在java中运行Bat批处理

来源:互联网 发布:三岛由纪夫 禁色 知乎 编辑:程序博客网 时间:2024/05/31 19:16
package com.xrda.api.JunitOrder;import java.io.IOException;import java.io.InputStream;/*** * @Title: InvokeBat.java* @Package com.xrda.api.JunitOrder* @Description: 在java中直接运行bat文件* @author 徐建峰* @date 2016年7月11日 下午3:24:34* @version 1.0*/public class InvokeBat{/*** * @Description: 在java中直接运行bat文件* @param batName bat文件的指定路径;也可以写为cmd /c start /b G:\\source\\source.bat* void * @throws* @author 徐建峰* @date 2016年7月11日 下午5:33:18*/public void runbat(String batName) {Process ps = null;try {//调用另一个现成的可执行程序或系统命令//1.执行DOS的内部命令 2.打开一个不可执行的文件 3.执行一个有标准输出的DOS可执行程序 ps = Runtime.getRuntime().exec(batName);InputStream in = ps.getInputStream();int c;while ((c = in.read()) != -1) {System.out.print(c);// 如果你不需要看输出,这行可以注销掉}in.close();ps.waitFor();} catch (IOException ioe) {ioe.printStackTrace();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}int i = ps.exitValue();//执行结果if (i == 0) {System.out.println("数据库还原成功") ;} else {System.out.println("数据库还原失败") ;}ps.destroy();//销毁// System.out.println("child thread done");}public static void main(String[] args) {InvokeBat test1 = new InvokeBat();String batName = "G:\\source\\source.bat";//解决不弹框只需要“start”后面加一个参数“/b”就行:// String batName1 = "cmd /c start /b G:\\source\\source.bat";test1.runbat(batName);// test1.runbat(batName1);System.out.println("main thread");}}
                                             
0 0