【问题标题】:How to close a windows explorer?如何关闭 Windows 资源管理器?
【发布时间】:2013-10-27 06:50:54
【问题描述】:

我有一个代码,当我单击“登录”按钮时,它使用 jDesktop 打开 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");
    }
}  

那么现在,我的问题是,当我点击 LOGOUT 按钮时,jDesktop windows explorer 界面也应该关闭...我不知道该使用什么代码...。

【问题讨论】:

  • 对答案感兴趣

标签: java events windowlistener jdesktop


【解决方案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 是否可以工作 ;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多