在Java中打开Windows资源管理器

6

我在Stack Overflow上寻找了这个问题的答案,但是我没能找到适用于我的答案。

使用Java,我如何创建一个按钮来启动一个资源管理器窗口并指向特定的目录?如果可能的话,如何使它适用于OSX和Linux操作系统?

2个回答

14

我不确定在其他操作系统中的运作方式,但在Windows中,您可以使用类似于以下内容的东西

Desktop.getDesktop().open(new File("c:\\"));

编辑

找到另一种方法 (请查看该答案的FileExplorer类链接)。你也可以使用System.getProperty("os.name")来确定操作系统。


桌面版本具有可移植代码的优势。另一种方法涉及您的代码知道当前操作系统使用哪个"explorer"。(另一方面,您可以选择...) - Stephen C
那么,如果我使用getDesktop代码,它会在所有操作系统上都能正常工作,Stephen? - Michael Scott
@MichaelScott,只要为该操作系统编写AWT工具包实现的人以打开目录路径的方式实现了open()方法,那么它应该可以。由于JDK中的OS集成是这样完成的,因此不可能为每个 OS保证这一点。 JDK本身仅为Windows、Motif或在X11下使用gnome_url_show实现此功能。 - millimoose
@millimoose 在我的Ubuntu 13.04上无法工作。我收到一个IOException:无法显示URI:file:/home/. - Robin Jonsson
@RobinJonsson 考虑为您的问题创建单独的问题。包括有关Java版本的信息。问题是否仅与“/ home”目录有关?您能否打开其他目录?您正在使用哪些代码?也许问题在于权限,您如何运行应用程序? - Pshemo

2
javax.swing.JButton myButton = new javax.swing.JButton("BUTTON TEXT");
myButton.addActionListener(new java.awt.event.ActionListener() {

  @Override
  public void actionPerformed(ActionEvent e) {
    java.awt.Desktop.getDesktop().open(new java.io.File("MY PATH NAME HERE"));
  }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接