Desktop.getDesktop().open(file) 在 Ubuntu 不工作

Desktop.getDesktop().open(file) on Ubuntu not working

我有一个 Java 应用程序,当我使用 java.awt.Desktop:

Desktop.getDesktop().open(file);

它在 Windows 上工作正常(在我的默认程序中打开一个文件),但是在 Ubuntu 上(使用 openJdk 13),Java 应用程序卡住了,我没有甚至得到任何日志错误或任何东西。我必须强制退出应用程序才能恢复。

正确的文件路径,否则我实际上会得到一个异常。还有,isDesktopSupported一个isSupported(Action.OPEN)returnstrue.

我能做什么?我可以检查一些系统设置或日志吗?或者从 java.awt.Desktop 获取一些日志?或者这不适用于 Ubuntu/Linux?

还有其他选择吗?

来自here

为了使用 API,您必须调用 java.awt.EventQueue.invokeLater() 并从传递给 invokeLater() 的可运行对象调用桌面 class 的方法:

void fxEventHandler() {
   EQ.invokeLater(() -> {
      Desktop.open(...);
   });
}