我有一个 Java 应用程序,当我使用 java.awt.Desktop 时:
Desktop.getDesktop().open(file);
它在 Windows 上运行良好(在我的默认程序中打开一个文件),但在 Ubuntu(使用 openJdk 13)上,Java 应用程序卡住了,我什至没有收到任何日志错误或任何东西。我必须强制退出应用程序才能恢复。文件路径正确,否则我实际上会得到一个异常。另外,
isDesktopSupported
一个 isSupported(Action.OPEN)
返回 true
.我能做些什么?我可以检查一些系统设置或日志吗?或者也许从
java.awt.Desktop
获取一些日志?或者这在 Ubuntu/Linux 上不起作用?有没有其他选择?
最佳答案
来自 here :
为了使用 API,您必须调用 java.awt.EventQueue.invokeLater() 并从传递给 invokeLater() 的可运行对象中调用 Desktop 类的方法:
void fxEventHandler() {
EQ.invokeLater(() -> {
Desktop.open(...);
});
}
关于java - Ubuntu 上的 Desktop.getDesktop().open(file) 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65852545/