我想从java程序执行以下命令。
java -jar jarfile.jar -dir C:/MyDirectory -out C:/MyDirectory/example.html
我试过跟随,但它打开了cmd提示符,但它没有执行下一个命令
Runtime rt = Runtime.getRuntime();
try {
rt.exec(new String[] { "cmd.exe", "/c", "start" , "java -jar exampleJar.jar -dir C:\\MyDirectory -out C:\\MyDirectory\\exampleHtml.html" });
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:2)
我正在使用以下代码并且其工作正常,ProcessBuilder
用于创建操作系统进程,每个实例管理一组进程属性。 start()
方法使用这些属性创建新的Process实例。要创建具有相同实例start()
方法的新子进程,可以重复调用。
public void execute(String[] code){
try{
ProcessBuilder pb=new ProcessBuilder(code);
pb.redirectErrorStream(true);
Process process = pb.start();
BufferedReader inStreamReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while(inStreamReader.readLine() != null){
System.out.println(inStreamReader.readLine());
}
} catch (IOException e) {
System.out.println(e.toString());
e.printStackTrace();
log.error(e.getMessage());
}
}