有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

通过java运行批处理文件

我只是想在win7中使用java代码运行一个批处理文件。我能跑。exe文件的代码,但你知道它不能与批处理。问题出在哪里?你甚至都知道。exe不以该命令开头。但我可以运行其他exe文件,我试过一些。代码是这样的(try-and-catch是这样的):它们都不起作用

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

我尝试使用process进行工作,并编写了下面的代码。它重复了一遍

       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();
            }

共 (2) 个答案

  1. # 1 楼答案

    尝试以下方法:

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

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

  2. # 2 楼答案

    使用这个:

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

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