我有一个代码,当我点击按钮登录时,它使用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");
}
}
那么现在,我的问题是当我单击按钮 注销 时,jDesktop 窗口资源管理器界面也应该关闭......我不知道该使用什么代码...
这不是那么简单,他们唯一的机会是如果你有对相关过程的引用。 这意味着您将需要对该过程进行更多控制......这也意味着它只能在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
是否可以;)