在java程序中运行批处理文件

时间:2014-07-05 08:44:08

标签: java batch-file jar

包含jar文件的批处理文件。 我想在netbeans中的java程序中运行批处理文件。 我用了这段代码:

Process p=    Runtime.getRuntime().exec("cmd /c  start  \"C:\\Users\\123\\Desktop\\New folder (6)\\Browser.bat\"");

但是通过运行此代码,将显示打开和下方地址的cmd窗口,并且批处理文件不会运行。

C:\Users\123\Documents\NetBeansProjects\JavaApplication19

这与批处理文件的地址不同。

批处理文件包含:

java -jar -Xms32m -Xmx512m Browser.jar

使用ProcessBuilder: jar文件运行。

ProcessBuilder pb = new ProcessBuilder("java.exe", "-jar","-Xms32m", "-Xmx512m", "C:\\Users\\123\\Desktop\\New folder (6)\\Browser.jar");
  pb.directory(new File("C:\\Windows\\System32"));
  Process p = pb.start();

将ProcessBuilder用于批处理文件: 程序运行成功但jar文件没有执行。

ProcessBuilder pb = new ProcessBuilder("java.exe", "-jar","-Xms32m", "-Xmx512m", "C:\\Users\\Saeedeh\\Desktop\\New folder (6)\\FarsNetBrowser.jar");
pb.directory(new File("C:\\Windows\\System32"));
Process p = pb.start();

2 个答案:

答案 0 :(得分:1)

我认为您的命令行中有额外的start。它应该只使用

工作
cmd /c "C:\Users\123\Desktop\New folder (6)\Browser.bat"

我会让Java转义参数而不是硬编码字符串:

new ProcessBuilder("cmd", "/c", PATH_OF_THE_BAT_FILE);

答案 1 :(得分:0)

Process p = Runtime.getRuntime().exec("cmd /c start \"C:/Users/123/Desktop/New folder (6)/Browser.bat\"");