2015-01-10 146 views
0

我正在研究一個應用程序,其中如果用戶單擊某個鏈接,我希望它在其默認瀏覽器中打開。從我讀過的內容來看,這在理論上應該工作,但是,在Linux(特別是Linux Mint 17.1)上運行時,它會掛起,直到程序被強制退出。我不特別感興趣的是在WebView中打開它。任何你可以想到的替代品或修復?提前致謝。Desktop.getDesktop()。瀏覽掛起

if(Desktop.isDesktopSupported()){ 
    try{ 
     Desktop.getDesktop().browse(new URI(url)); 
    }catch (IOException | URISyntaxException e){ 
     log.debug(e); 
    } 
} 
+0

「url」的典型值是多少?它是一個'http:// ..'或者'file:// ..'或者別的什麼東西? –

+0

http://是最常見的 – erzr2

+0

Desktop.browse(..)被稱爲基於'file:'的URI失敗。改用**'Desktop.open(File)'**。它是否也失敗了**'http:'** URIs? –

回答

0

You are not alone。這是一個在某些版本的JDK 1.6和1.7中出現的錯誤。我沒有看到它在JDK 1.8中發生。

它也可以發生在Windows上,你所能做的就是更新JVM或不使用Desktop類(這很糟糕)。

+0

宏偉。好吧,寫了一些工作。對我來說工作得不錯。 – erzr2

0

你怎麼從這個獲得?:

if (Desktop.isDesktopSupported()) { 
    System.out.println("Desktop IS supported on this platform "); 

    if (Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { 
    System.out.println("Action BROWSE IS supported on this platform "); 
    } 
    else { 
    System.out.println("Action BROWSE ISN'T supported on this platform "); 
    } 
} 
else { 
    System.out.println("Desktop ISN'T supported on this platform "); 
} 

而且,看看thisthis答案在這裏計算器。

相關問題