2013-10-27 143 views
1

我有一个使用JDesktop中打开Windows资源管理器界面,当我点击该按钮登录时的代码和它的工作的权利..如何关闭Windows资源管理器?

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
    Desktop desktop = Desktop.getDesktop(); 
    File dirToOpen; 
    try { 
     dirToOpen = new File("C://as//2010-0000-1"); 
     desktop.open(dirToOpen); 
    } catch (IOException ex) { 
     ex.getMessage(); 
    } catch (IllegalArgumentException iae) { 
     System.out.println("File Not Found"); 
    } 
} 

那么现在,我的问题是,当我按一下按钮注销,则JDesktop中的窗户资源管理器界面也应该关闭...我不知道要使用什么代码....

+0

感兴趣的答案 –

回答

1

这不是那么简单,他们只有你有机会是如果你有一个参考有问题的过程。这意味着你将需要对流程进行更多的控制......这也意味着它只能在Windows上工作...

我使用下面的代码在Windows中显示指定的文件资源管理器...

String path = file.getCanonicalPath(); 

ProcessBuilder pb = new ProcessBuilder("explorer.exe", "/select," + path); 
pb.redirectError(); 
Process proc = pb.start(); 

一旦你有机会获得Process,你可以尝试使用Process#destory尝试终止进程。

启动过程应该从一个单独的线程完成,因此您不要让自己陷入一个障碍点,您还应该使用Process的输出,否则会导致进程停止。

的PS我没有在时刻访问到Windows机器,所以我不知道是否会Process#destory工作;)