在java中运行bat文件

时间:2015-10-08 15:19:28

标签: java batch-file

我试图运行一个bat文件,它可以做任何事情。 当我通过在Windows中双击手动打开bat文件时, 它打开一个运行CLI的cmd windod。 bat文件需要运行jar。

这是我的代码:

@Override
public void changeToCli() {

        try {

            Process p = Runtime.getRuntime().exec("C:\\Users\\Gleb\\workspace1\\MVP\\CLI\\RunMe.bat");

        } catch (Exception e) {
            e.printStackTrace();
        }

}

2 个答案:

答案 0 :(得分:0)

您需要正确处理它的输入,输出和错误流。

批处理文件可能正在等待某些输入,或者批处理输出或错误流上的输出可能比缓冲区大,导致批处理阻塞直到输出/错误输出被消耗了。

请注意,这意味着消耗输入(它的程序输出,Java端的命名输入)和两个独立线程中的错误流。有关如何避免自己处理此问题的提示,请参阅Printing Runtime exec() OutputStream to console

答案 1 :(得分:0)

(a)使用ProcessBuilder而不是Runtime,例如比如here

(b)bat文件是一个脚本,实际上cmd.exe执行这些文件

cmd.exe /c path/to/your.bat