2009-07-13 160 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