我正在为 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/