我正在尝试使用ProcessBuilder
在 cmd.exe 中启动应用程序,等待它完成然后关闭它。到目前为止我试过了:
String[] cmdline=new Stirng{}("cmd.exe","/C","start",application_and_parameters);
ProcessBuilder processBuilder = new ProcessBuilder(cmdline);
Process p = processBuilder.start();
//get error and input streams
int exitVal = p.waitFor();
按预期打开窗口,但不关闭。我试过了:
p.destroy()
并发送退出命令:
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
writer.write("exit");
writer.flush();
但没有成功,cmd保持不变。有人可以提出解决方案吗?
答案 0 :(得分:0)
删除开始,它将直接执行您的进程而无需打开命令提示符,因此您无需手动关闭它。下面以代码片段为例
String[] cmdline=new String[]{"cmd.exe","/C","notepad.exe"}; ProcessBuilder processBuilder = new ProcessBuilder(cmdline); Process p = processBuilder.start(); //get error and input streams int exitVal = p.waitFor(); System.out.println(exitVal);