我正在尝试启动一个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();
答案 0 :(得分:0)
尝试使用这个
运行时.getRuntime()。exec(“cmd / c start C:\ Users \ user \ Desktop \ NetBeansProjects \ Genomic DataWarehouse Project \ biodwh.startBioDWH.bat”);
答案 1 :(得分:0)
添加行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");