Jak otworzyć łącze w domyślnej przeglądarce za pomocą kliknięcia przycisku, na wzór
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
open("www.google.com"); // just what is the 'open' method?
}
});
?
Odpowiedzi:
Użyj metody Desktop # Browse (URI) . Otwiera identyfikator URI w domyślnej przeglądarce użytkownika.
źródło
new ProcessBuilder("x-www-browser", uri.toString());
. Można by pomyśleć, że gdyby istniały ograniczenia bezpieczeństwa, wywołanie ProcessBuilder nie działałoby. Ale to działa. Nie mam pojęcia, dlaczegodesktop.browse(uri)
nie działa, ale widziałem, że nie działa to dla wielu ludzi. Domyślałem się, że może to problem z Netbeans, ale nie wiem.openWebpage
mogłoby być użycieRuntime.exec(..)
wstępnie zdefiniowanego zestawu popularnych nazw przeglądarek i jego iteracja, przekazując im adres URL. Ma to również zastrzeżenie, że nie działa dla użytkowników z mało znanymi przeglądarkami, ale napiszę i dodam to do tej odpowiedzi wkrótce, gdy będę miał wolną chwilę.źródło
uwaga: musisz uwzględnić niezbędne importy z
java.net
źródło
Rozwiązaniem bez środowiska Desktop jest BrowserLauncher2 . To rozwiązanie jest bardziej ogólne, ponieważ w systemie Linux Desktop nie zawsze jest dostępny.
Długa odpowiedź jest dostępna pod adresem https://stackoverflow.com/a/21676290/873282
źródło
źródło
Wiem, że to stare pytanie, ale czasami
Desktop.getDesktop()
powoduje nieoczekiwaną awarię, jak w Ubuntu 18.04. Dlatego muszę przepisać mój kod w ten sposób:Następnie możemy wywołać tego pomocnika z instancji:
źródło
źródło