2016-06-20 11 views
4

Javaからデフォルトブラウザでリンクを開こうとしています。私は単純なWebブラウザを作成したくない、私は既存のものを使いたい。人々は、以下を使用することを示唆している:デスクトップとdesktop.browseはサポートされていますが、ブラウザはまだハングします

Desktop.getDesktop().browse(new URI("http://www.targetsite.com")); 

はしかし、これは単にbrowseを呼び出す時にハングアップし、私が強制終了することに終わります。

私はデスクトップとdesktop.browseが私のシステムで作業する必要があるかどうかを確認するために、次のことを実行するための提案を見た:

出力を与えた
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 "); 
} 

Desktop IS supported on this platform 
Action BROWSE IS supported on this platform 

は何ができます私は修正するか、これを回避するか?あなたはすべてを正しく行なったし、WindowsとOS Xで期待どおりにコードが動作するはず驚くほどのLinuxにDesktopのためにサポートしていないように見えたJava 1.8.0_73に

+0

使用しているOSは何ですか? – whiskeyspider

+0

@whiskeyspider Ubuntu 16.04 –

答えて

3

を使用して

はその素晴らしいではありません。代わりの方法を試すことができます:

if (Runtime.getRuntime().exec(new String[] { "which", "xdg-open" }).getInputStream().read() != -1) { 
    Runtime.getRuntime().exec(new String[] { "xdg-open", urlString }); 
} 
+0

これはうまくいきました、ありがとう! –

関連する問題