[英]bat file does not start and bat file is in a folder
我正在尝试启动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");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.