2016-06-20 22 views
4

Ich versuche, einen Link im Standardbrowser von Java zu öffnen. Ich möchte keinen einfachen Webbrowser erstellen, sondern einen vorhandenen. Die Leute haben vorgeschlagen, die folgende verwenden:Desktop und desktop.browse werden unterstützt, aber das Durchsuchen bleibt hängen

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

Dies ist jedoch einfach auf browse Aufruf hängt, und ich am Ende zu zwingen, aufzuhören.

sah ich einen Vorschlag die folgende, laufen auf meinem System, um herauszufinden, ob Desktop-und desktop.browse sollte funktionieren:

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

, die den Ausgang gab:

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

Was kann Ich tue, um das zu reparieren oder zu umgehen?

Java 1.8.0_73 Mit

+0

Welches Betriebssystem verwenden Sie? – whiskeyspider

+0

@whiskeyspider Ubuntu 16.04 –

Antwort

3

Es sieht aus wie Sie alles richtig gemacht haben und Ihr Code sollte in Windows und OS X ist nicht überraschend Unterstützung für Desktop in Linux ist nicht so groß wie erwartet. Sie können einen alternativen Ansatz versuchen:

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

Das hat funktioniert, danke! –