小编典典

JavaFX Freeze在Desktop.open(文件),Desktop.browse(uri)上

linux

我正在通过NetBeans8.0使用Oracle JDK 1.8.0_05在Ubuntu 12.04 LTS 64位(使用Gnome
Shell)上使用Java运行一些代码。

在Main或在其他情况下为空的Java项目中调用以下函数时,它们可以完美运行,但是,从任何JavaFX应用程序中调用时,它将导致窗口冻结并停止响应(尽管该项目符合要求),要求将其强制关闭。

谁能提出我所写内容的任何问题,可能引起问题或循环?

las,由于失败的模式,没有错误消息可供我提供或分析。

感谢您收到任何建议,在此先感谢。

   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);
            }
}

阅读 393

收藏
2020-06-03

共1个答案

小编典典

我也有同样的问题,此解决方案对我有用:

if( Desktop.isDesktopSupported() )
{
    new Thread(() -> {
           try {
               Desktop.getDesktop().browse( new URI( "http://..." ) );
           } catch (IOException | URISyntaxException e1) {
               e1.printStackTrace();
           }
       }).start();
}
2020-06-03