Java bat文件未启动,bat文件位于文件夹中

Java bat文件未启动,bat文件位于文件夹中,java,Java,我正在尝试启动一个bat文件。bat文件位于一个文件夹中。该文件夹包含所有可执行jar文件。我尝试使用此代码启动bat文件,但无法启动 ProcessBuilder pb = new ProcessBuilder( "C:\\Users\\user\\Desktop\\NetBeansProjects\\Genomic DataWarehouse Project\\biodwh.startBioDWH.bat" ); pb.redirectErrorStream(true);

我正在尝试启动一个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();

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

在.bat中添加行
pushd%~dp0


这会将当前驱动器和路径更改为bat文件的驱动器和路径。

好的,看来我误解了这个问题

我认为您不能直接执行批处理文件,但需要使用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");

不,这不是打开bat文件。您是在告诉我在路径的末尾添加pushd%~dp0(ProcessBuilder pb=new ProcessBuilder(“C:\\Users\\user\\Desktop\\NetBeansProjects\\Genomic DataWarehouse Project\\biodwh.startBioDWH.batpushd%~dp0”),不,我告诉您修改bat(如果可以的话)文件来添加行。任何.bat文件都应该使用
%~dp0
来处理路径,这允许批处理文件始终工作。如果通过双击从其路径内部启动批处理文件…抱歉,但我不知道如何修改bat文件。因为一旦我双击启动的bat文件,它就会启动。我确实添加了此行,但它没有打开bat文件它对我有效。请尝试删除bat文件名中的第一个点。很抱歉,它对我无效,因为bat文件位于一个依赖于存在的可执行文件的文件夹中。@VladimirScofild我想您忘记了将反斜杠加倍,也许将
/d folderpath
参数添加到
start
命令强制折叠您说“无法”是什么意思.会发生什么?您预计会发生什么?是否有错误消息?根据我的经验,我想指出,如果.bat文件未打开,则可能与调用.bat文件的脚本无关。几种不同类型的错误可能会导致.bat文件无法正常工作,或者可能只是缺少一个p因为这可能会使它看起来好像无法正常运行。为了正确评估您的代码,我们需要查看.bat文件中的内容。由于其他答案似乎都不适用于您,因此.bat文件出现错误是我的第一反应。