从Java 6u13 +中的Java WebStart(JNLP)启动浏览器窗口

时间:2009-07-13 13:56:44

标签: java java-web-start

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

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

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

您知道任何变通方法吗?

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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