2014-03-07 37 views
0

我试图使用ProcessBuilderCMD.EXE启动应用程序,等待它完成,然后将其关闭。到目前为止,我尝试过:打开和关闭应用从Java

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住宿。任何人都可以提出解决方案

+1

试试这个:HTTP:/ /stackoverflow.com/questions/3468987/executing-another-application-from-java –

回答

0

删除开始,它会直接执行的过程,而无需打开命令提示符,所以你不会需要关闭它manually.Below是你的代码片段作为一个例子

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);