通过java运行批处理文件

时间:2011-10-23 11:13:30

标签: java batch-file runtime

我只想在win7中使用java代码运行批处理文件。我可以使用代码运行.exe文件,但是你知道它不适用于批处理。问题出在哪儿?您知道甚至cmd.exe也不会以该命令启动。但我可以运行其他exe文件,我尝试了一些。代码是这样的(尝试和捕获就是这样):它们都没有工作!

Runtime.getRuntime().exec("cmd.exe /c demo.bat");
Runtime.getRuntime().exec("demo.bat");

我尝试使用进程工作,我编写了下面的代码。它重新开始了

       java.lang.IllegalThreadStateException:process has not exited
        at java.lang.ProcessImpl.exitValue(Native Method)
        at Test.Asli.main(Asli.java:38)

这是代码:

           try{  
                Runtime rt = Runtime.getRuntime();
                Process proc= rt.exec("C:\\Windows\\System32\\cmd.exe"); 
                int b = proc.exitValue();
              //  int exitVal = proc.exitValue();
                //System.out.println("Process exitValue: " + exitVal);}
              }
              catch (Exception e) {
                // TODO: handle exception
                  e.printStackTrace();
            }

3 个答案:

答案 0 :(得分:5)

尝试以下方法:

String[] cmd = {"cmd.exe", "/c", "demo.bat");
Runtime.getRuntime().exec(cmd);

我总是喜欢自己拆分命令和参数。否则,它是通过拆分可能不是你想要的空间来完成的。

答案 1 :(得分:1)

试试这个:

Runtime.getRuntime().exec("cmd.exe /c start demo.bat");

答案 2 :(得分:0)

使用此:

 try {
 Process p = Runtime.getRuntime().exec("C:PATH/TO/FILE/yourbatchfile.bat");
 } catch(Exception e) {
     e.printStackTrace();
 }

它甚至隐藏了恼人的提示窗口(如果你想要的话)