【问题标题】:Launching a browser window from Java WebStart (JNLP) in Java 6u13+在 Java 6u13+ 中从 Java WebStart (JNLP) 启动浏览器窗口
【发布时间】:2013-12-06 14:14:26
【问题描述】:

Java 6u13 和 6u14 中有一个错误。 http://bugs.sun.com/view_bug.do?bug_id=6835450

简单地说,下面的代码应该打开一个浏览器窗口,但由于框架中的一个错误,它在 Java 1.6 update 13 中停止工作。不再打开任何东西。 Java 小程序有一个类似的错误(已在更新 14 中修复),但这个错误仍然存​​在于 Java WebStart/JNLP 的更新 14 中。

getAppletContext().showDocument(new URL("http://www.sun.com"),"_blank");

您知道任何解决方法吗?

【问题讨论】:

    标签: java java-web-start


    【解决方案1】:

    我没有在 JNLP 中尝试过,但通常应该可以:

    java.awt.Desktop.getDesktop().browse(new URI("http://www.sun.com"));
    

    【讨论】:

    • 在这种情况下它是 URI,但似乎可以正常工作。无法指定目标,但这对我来说已经足够了。
    【解决方案2】:

    BasicService.showDocument 有效吗?我不记得这是如何实现的。

    或者,使用 LiveConnect 自己执行 JavaScript(尽管这可能会遇到同样的问题)。

    【讨论】:

      【解决方案3】:
      public boolean openUrl(final URL url) {
          try {
              // Lookup the javax.jnlp.BasicService object
              BasicService bs = (BasicService)javax.jnlp.ServiceManager.lookup("javax.jnlp.BasicService");
              // Invoke the showDocument method
              return bs.showDocument(url);
          } catch(UnavailableServiceException ue) {
              // Service is not supported
              log.log(Level.WARNING, "Could not open URL " + url, ue);
              return false;
          }       
      }
      

      【讨论】:

      • 我不知道你为什么发这么晚。这个问题应该在 Java 6u18 中得到修复。
      猜你喜欢
      • 2016-01-18
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多