Linux 上的 Java - 打开文件管理器

标签 java linux javafx sh

我正在为 Windows 和 Linux(Debian/Ubuntu 发行版)开发一个 JavaFX 应用程序,目前在 Linux Mint 上(老实说,除了 Mint,我对其他发行版没有任何经验)。应用程序应该能够使用系统的文件管理器打开文件夹。

虽然在 Windows 上我使用它没有问题:

Desktop dt = Desktop.getDesktop();
dt.open(path);

这在 Linux 上似乎行不通,所以我想到了简单地使用 Bash 命令,例如:

ProcessBuilder builder = new ProcessBuilder("sh", "-c", "nemo " + path);

但这只适用于 Linux Mint Cinnamon,因为 KDE 和其他版本可能带有不同的“默认”文件管理器(如 Dolphin 或 Nautilus)。

现在有没有办法以编程方式使用 Java 或 Bash 来获取关联的文件管理器?

最佳答案

您需要找到默认的文件管理器。 您可以使用 xdg-mime命令。

xdg-mime query default inode/directory返回默认文件管理器。

如果是海豚则输出:dolphin.desktop

xdg-open <directory>但它有时会启动错误的文件管理器。

参见 documentation了解更多。


xdg-open <directory>已弃用

使用'gio open'反而。见source

关于Linux 上的 Java - 打开文件管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48303864/

相关文章:

c - 将大量 xml 文件转换为文本时出现段错误

java - 在 JavaFX Webview 中运行 URLConnection uc

Javafx 线性梯度重复行为

java - Jruby-Javafx : How to add icon to button?

java - :app:transformClassesWithJarMergingForDebug失败(未使用jsonpath)

javax.validation ORDER of failures-entries 作为验证方法的结果

java - 我们需要运行多少次 Java 程序来预热 JVM?

java - spring query dsl : how to sort by two database fields, 是外键之一?

linux - dpkg :- error processing package javascript-common (--configure):- while using apt-get command

c - 在c中发送十六进制值并检查其位设置