2009-07-13 154 views
1

Java 6u13和6u14中存在一个错误。 http://bugs.sun.com/view_bug.do?bug_id=6835450使用Java 6u13从Java WebStart(JNLP)启动浏览器窗口+

简而言之,下面的代码应该打开浏览器窗口,但由于框架中的错误,它停止在Java 1.6更新13中工作。 Java applet有一个类似的bug(在更新14中已经修复),但是这个仍然存在于Java WebStart/JNLP的更新14中。

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

您是否知道任何解决方法?

回答

4

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

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

这是在这种情况下的URI,但似乎工作正常。无法指定目标,但这对我来说已经足够了。 – 2009-07-13 16:08:15

0

是否BasicService.showDocument工作?我不记得那是如何实现的。

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

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

我不确定你为什么迟到。这个问题在Java 6u18中被认为是固定的。 – Powerlord 2010-02-19 19:06:10