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

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

虽然用这种方法即可实现执行后退出,但是使用这种办法黑框还是会弹出来,还是想找到更好的方法。目前已经找到更好的解决办法,将在下一篇博客中进行分析。

你可能感兴趣的:(java,批处理文件)