桌面上的JavaFX冻结。打开(文件),桌面。浏览(uri)
我正在Ubuntu 12.04 LTS 64位(使用Gnome外壳)上运行一些Java代码,通过NetBeans8使用Oracle JDK 1.8.0_05。0
当在Main中或在其他空的Java项目中调用时,以下函数可以完美地工作,但是当从任何JavaFX应用程序调用时,它会导致窗口冻结并停止响应(尽管项目完全符合要求),需要强制关闭它
有人能建议我所写的可能导致问题或循环的任何问题吗
唉,由于故障模式,我无法提供或分析错误消息
感谢您的建议,提前感谢
public static void desktopTest(){
Desktop de = Desktop.getDesktop();
try {
de.browse(new URI("http://stackoverflow.com"));
}
catch (IOException | URISyntaxException e) {
System.out.println(e);
}
try {
de.open(new File("/home/aaa/file.ext"));
}
catch (IOException e){
System.out.println(e);
}
try {
de.mail(new URI("mailto:email@example.com"));
}
catch (URISyntaxException | IOException e){
System.out.println(e);
}
}
# 1 楼答案
将其封装在系统线程上:
# 2 楼答案
我解决了…的问题
# 3 楼答案
在JavaFX中有一种新的处理方法。我看到的唯一缺点是需要使用
Application
单例实例化HostServicesDelegate
# 4 楼答案
我也有同样的问题,这个解决方案对我有效:
# 5 楼答案
我也有同样的问题。我发现如果我打电话给桌面。从一个新线程打开()方法,在关闭JavaFX应用程序窗口后,文件将打开,但这没有多大帮助
如果你把
在您的main方法启动后(args)调用中,在您关闭JavaFX应用程序之前,它也不会被调用
JavaFX应用程序和Swing之间似乎存在某种并发性问题
在Ubuntu上你可以试试
从您的JavaFX应用程序
据我所知,你的代码应该可以工作