Wie kann ich einen Link im Standardbrowser mit einem Klick auf die Schaltfläche öffnen?
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
open("www.google.com"); // just what is the 'open' method?
}
});
?
Antworten:
Verwenden Sie die URI- Methode (Desktop # browse) . Es öffnet sich eine URI im Standardbrowser des Benutzers.
quelle
new ProcessBuilder("x-www-browser", uri.toString());
. Sie würden denken, dass der ProcessBuilder-Aufruf bei Sicherheitsbeschränkungen nicht funktionieren würde. Aber es funktioniert. Ich habe keine Ahnung, warumdesktop.browse(uri)
es nicht funktioniert, aber ich habe gesehen, dass es bei vielen Menschen nicht funktioniert. Ich habe vermutet, dass es sich möglicherweise um ein Netbeans-Problem handelt, aber ich weiß es nicht.openWebpage
könnteRuntime.exec(..)
einen vordefinierten Satz beliebter Browsernamen verwenden und durchlaufen und ihnen die URL übergeben. Das hat auch die Einschränkung, dass es nicht für Benutzer mit obskuren Browsern ausgeführt wird, aber ich werde es bald schreiben und zu dieser Antwort hinzufügen, wenn ich einen freien Moment habe.quelle
Hinweis: Sie müssen die erforderlichen Importe aus einschließen
java.net
quelle
Eine Lösung ohne die Desktop-Umgebung ist BrowserLauncher2 . Diese Lösung ist allgemeiner, da unter Linux Desktop nicht immer verfügbar ist.
Die Antwort auf die Länge finden Sie unter https://stackoverflow.com/a/21676290/873282
quelle
quelle
Ich weiß, dass dies eine alte Frage ist, aber manchmal
Desktop.getDesktop()
führt dies zu einem unerwarteten Absturz wie in Ubuntu 18.04. Daher muss ich meinen Code folgendermaßen neu schreiben:Dann können wir diesen Helfer von der Instanz aus aufrufen:
quelle
quelle