您的位置:首页 > 编程语言 > Java开发

Java执行bat批处理文件(上)

2016-01-23 20:10 288 查看
bat文件是DOS下的批处理文件,它是无格式的文本文件,包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。

博主最近想要自己做一个笔记本开wifi的小程序,其实也就是通过cmd的命令来开wifi,只是把命令保存在了批处理文件里,然后通过java来调用执行bat文件,但是遇到的问题是每次调用都会弹出cmd’的黑框,通过查找资料这个问题也得到了解决。下面将如何用java调用执行批处理文件以及隐藏cmd黑框总结一下。

1. java调用cmd执行批处理文件

新建一个java项目,将我们要调用的bat文件保存在项目文件夹下,下面写好了一个方法,需要传递一个java调用执行bat的命令给该方法。

public void run_cmd(String strcmd) {
//
Runtime rt = Runtime.getRuntime(); //Runtime.getRuntime()返回当前应用程序的Runtime对象
Process ps = null;  //Process可以控制该子进程的执行或获取该子进程的信息。
try {
ps = rt.exec(strcmd);   //该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。
ps.waitFor();  //等待子进程完成再往下执行。
} catch (IOException e1) {
e1.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

int i = ps.exitValue();  //接收执行完毕的返回值
if (i == 0) {
System.out.println("执行完成.");
} else {
System.out.println("执行失败.");
}

ps.destroy();  //销毁子进程
ps = null;
}


调用写好的方法,命令格式如下:

String strcmd = "cmd /c start  你的文件名.bat";  //调用我们在项目目录下准备好的bat文件,如果不是在项目目录下,则把“你的文件名.bat”改成文件所在路径。
run_cmd(strcmd);  //调用上面的run_cmd方法执行操作


2.cmd执行时弹出黑框且不退出的解决办法

在bat文件最后加上

exit

虽然用这种方法即可实现执行后退出,但是使用这种办法黑框还是会弹出来,还是想找到更好的方法。目前已经找到更好的解决办法,将在下一篇博客中进行分析。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: