bat文件无法启动,bat文件位于文件夹中

时间:2014-02-23 14:08:44

标签: java

我正在尝试启动一个bat文件。 bat文件位于文件夹中。该文件夹包含所有可执行jar文件。我尝试使用此代码启动bat文件,但无法使用。

    ProcessBuilder pb = new ProcessBuilder( "C:\\Users\\user\\Desktop\\NetBeansProjects\\Genomic DataWarehouse Project\\biodwh.startBioDWH.bat" );
    pb.redirectErrorStream(true);
      Process p = pb.start();
      InputStream is = p.getInputStream();
      BufferedReader br = new BufferedReader( new InputStreamReader( is ) );
      for ( String line = br.readLine(); line != null; line = br.readLine() )
      {
              System.out.println( ">" + line ); 
      }
      p.waitFor();

3 个答案:

答案 0 :(得分:0)

尝试使用这个
运行时.getRuntime()。exec(“cmd / c start C:\ Users \ user \ Desktop \ NetBeansProjects \ Genomic DataWarehouse Project \ biodwh.startBioDWH.bat”);

答案 1 :(得分:0)

在.bat中

添加行pushd %~dp0

这会将当前驱动器和路径更改为其中一个bat文件。

答案 2 :(得分:0)

好吧,好像我误解了这个问题。

我认为您无法直接执行批处理文件,但需要使用cmd.exe启动它。尝试将cmd /c(末尾有空格)添加到新的ProcessBuilder行:

ProcessBuilder pb = new ProcessBuilder( "cmd /c C:\\Users\\user\\Desktop\\NetBeansProjects\\Genomic DataWarehouse Project\\biodwh.startBioDWH.bat" );

或者你可以尝试以这种方式执行bat文件:

String path="C:\\Users\\user\\Desktop\\NetBeansProjects\\Genomic DataWarehouse Project\\";
File dir = new File(path);
Process process = Runtime.getRuntime().exec("cmd /c "+path+"biodwh.startBioDWH.bat", null, dir);

或者,如果您不需要从其所在的文件夹执行批处理文件,则可以缩短

Process process = Runtime.getRuntime().exec("cmd /c C:\\Users\\user\\Desktop\\NetBeansProjects\\Genomic DataWarehouse Project\\biodwh.startBioDWH.bat");