Java在浏览器中打开无法运行(仅限Chrome)

4

这段代码非常简单。但是它什么也没做(除了输出我的打印语句)。

我在一个桌面Java应用程序中,并且将Chrome设置为默认浏览器。

我缺少什么?谢谢!

    String url = "https://www.google.com/";
    try {
         if (java.awt.Desktop.isDesktopSupported()) 
             System.out.println("yes");
         else System.out.println("no"); 
        java.awt.Desktop.getDesktop().browse(java.net.URI.create(url));
        System.out.println("here");
    } catch (IOException e) {
        System.err.println("exception thrown");
        e.printStackTrace();
    }
    System.out.println("done");

我的准确输出是这样的:

是的
这里
完成

编辑:我将默认浏览器从Chrome切换到Firefox,现在它可以正常工作。为什么Chrome不响应呢?


2
你是否遇到了其他类型的异常?IOException并不是唯一可能抛出的异常。 - Makoto
我没有看到任何问题。我的控制台很干净,而且我也没有崩溃或其他什么异常。 - AndroidDev
你至少看到了“here”这一行吗?你说你的控制台很干净;这意味着它真的很干净。 - Makoto
3
你确定你的平台支持getDesktop()方法吗?该方法的详细说明可以在以下链接中找到:https://docs.oracle.com/javase/6/docs/api/java/awt/Desktop.html#getDesktop%28%29 - mcwayliffe
1
谢谢。请查看已编辑的代码。希望这能回答任何问题。 - AndroidDev
显示剩余4条评论
2个回答

1
我遇到了同样的问题:使用Desktop.getDesktop().browse(URI)在Google Chrome上无法正常工作,但在Firefox作为默认浏览器时可以正常工作。
我重新安装了Chrome并使用Google安装程序选择“设为默认浏览器”。
然后,我进行了一次测试,Chrome工作正常。我进行了调试,但Chrome没有工作。 结论:在使用Run时,Chrome正常工作。当使用Debug时,Chrome不工作。

1

我曾经遇到过与Desktop.getDesktop.browse(URI)类似的问题,尝试了多种替代方案,如"rundll32"、"url.dll"、"FileProtocolHandler"等,但似乎都出现了相同的问题(代码得到执行,但没有任何操作)。

当我将应用程序作为独立运行而非服务运行时,问题得到了解决。不知何故,当应用程序作为服务运行时,Windows不允许任何文件打开协议。

P.S:目前还没有找到一个有希望的服务解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接