[英]run batch file in java program
There is batch file that contains a jar file. 有一个包含jar文件的批处理文件。 I want to run a batch file in a java program in netbeans.
我想在netbeans的Java程序中运行批处理文件。 I used this code:
我使用以下代码:
Process p= Runtime.getRuntime().exec("cmd /c start \"C:\\Users\\123\\Desktop\\New folder (6)\\Browser.bat\"");
But by running this code, a cmd windows in open and below address is shown and batch file doesn't run. 但是,通过运行此代码,将显示在打开的地址和其下方的cmd窗口,并且批处理文件不会运行。
C:\Users\123\Documents\NetBeansProjects\JavaApplication19
That is different from the address of batch file. 这与批处理文件的地址不同。
batch file contains: 批处理文件包含:
java -jar -Xms32m -Xmx512m Browser.jar
using ProcessBuilder: the jar file runs. 使用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();
using ProcessBuilder for batch file: program runs successfully but jar file not execute. 将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();
I think there's an extra start
in your command line. 我认为您的命令行还有一个额外的
start
。 It should work by just using 它应该只使用
cmd /c "C:\Users\123\Desktop\New folder (6)\Browser.bat"
and I would let Java escape argument instead of hardcoding the string: 而且我会让Java转义参数,而不是对字符串进行硬编码:
new ProcessBuilder("cmd", "/c", PATH_OF_THE_BAT_FILE);
Process p = Runtime.getRuntime().exec("cmd /c start \"C:/Users/123/Desktop/New folder (6)/Browser.bat\"");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.