Как открыть веб-браузер по умолчанию с помощью java

Может ли кто-нибудь указать мне в правильном направлении, как открыть веб-браузер по умолчанию и установить страницу на «www.example.com», спасибо

java.awt.Desktop – это class, который вы ищете.

 import java.awt.Desktop; import java.net.URI; // ... if (Desktop.isDesktopSupported()) { Desktop.getDesktop().browse(new URI("http://www.example.com")); } 

Вот мой код. Он откроет данный url в браузере по умолчанию (кросс-платформенное решение).

 import java.awt.Desktop; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public class Browser { public static void main(String[] args) { String url = "http://www.google.com"; if(Desktop.isDesktopSupported()){ Desktop desktop = Desktop.getDesktop(); try { desktop.browse(new URI(url)); } catch (IOException | URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ Runtime runtime = Runtime.getRuntime(); try { runtime.exec("xdg-open " + url); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } 

Для меня решение с Desktop.isDesktopSupported () не работает (windows 7 и ubuntu). Попробуйте это, чтобы открыть браузер из java-кода:

Окна:

 Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; rt.exec("rundll32 url.dll,FileProtocolHandler " + url); 

макинтош

 Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; rt.exec("open " + url); 

Linux:

 Runtime rt = Runtime.getRuntime(); String url = "http://stackoverflow.com"; String[] browsers = { "epiphany", "firefox", "mozilla", "konqueror", "netscape", "opera", "links", "lynx" }; StringBuffer cmd = new StringBuffer(); for (int i = 0; i < browsers.length; i++) if(i == 0) cmd.append(String.format( "%s \"%s\"", browsers[i], url); else cmd.append(String.format(" || %s \"%s\"", browsers[i], url); // If the first didn't work, try the next browser and so on rt.exec(new String[] { "sh", "-c", cmd.toString() }); 

Если вы хотите иметь многоплатформенное приложение, вам нужно добавить проверку операционной системы (например):

 String os = System.getProperty("os.name").toLowerCase(); 

Окна:

 os.indexOf("win") >= 0 

Mac:

 os.indexOf("mac") >= 0 

Linux:

 os.indexOf("nix") >=0 || os.indexOf("nux") >=0 

Вы также можете использовать Runtime для создания кросс-платформенного решения:

 import java.awt.Desktop; import java.net.URI; public class App { public static void main(String[] args) throws Exception { String url = "http://stackoverflow.com"; if (Desktop.isDesktopSupported()) { // Windows Desktop.getDesktop().browse(new URI(url)); } else { // Ubuntu Runtime runtime = Runtime.getRuntime(); runtime.exec("/usr/bin/firefox -new-window " + url); } } } 

Как отмечалось в ответе Тима Купера, java.awt.Desktop предоставил эту возможность с версии Java версии 6 (1.6), но со следующей оговоркой:

Используйте метод isDesktopSupported (), чтобы определить, доступен ли Desktop API. В операционной системе Solaris и на платформе Linux этот API зависит от библиотек Gnome. Если эти библиотеки недоступны, этот метод вернет false.

Для платформ, которые не поддерживают или не предоставляют java.awt.Desktop , загляните в проект BrowserLauncher2 . Он получен и несколько обновлен из classа BrowserLauncher, первоначально написанного и выпущенного Эриком Альбертом. Я использовал исходный class BrowserLauncher успешно в многоплатформенном Java-приложении, которое запускалось локально с интерфейсом веб-браузера в начале 2000-х годов.

Обратите внимание, что BrowserLauncher2 лицензируется по лицензии GNU Lesser General Public License . Если эта лицензия неприемлема, найдите копию оригинального BrowserLauncher, которая имеет очень либеральную лицензию:

Этот код является Copyright 1999-2001 Эрик Альберт ([email protected]) и может быть перераспределен или изменен в любой форме без ограничений, если часть этого комментария из этого абзаца до конца комментария не удалена , Автор просит, чтобы он был уведомлен о любом приложении, апплете или другом двоичном коде, который использует этот код, но это больше из любопытства, чем что-либо, и не требуется. Это программное обеспечение не содержит никаких гарантий. Автор не несет ответственности за потерю данных или функциональных возможностей, а также за любые неблагоприятные или неожиданные последствия использования этого программного обеспечения.

Кредиты: Стивен Спенсер, журнал JavaWorld (Java Tip 66). Спасибо также Рон Б. Йе, Эрик Шапиро, Бен Энгбер, Пол Тийтбаум, Андреа Кантаторе, Ларри Баровски, Тревор Бедзек, Фрэнк Мидрих и Рон Рабакук

Другие проекты, кроме BrowserLauncher2, также могут обновить исходный браузер BrowserLauncher, чтобы учитывать изменения в настройках безопасности браузера и по умолчанию с 2001 года.

на windowsх вызывается «cmd / k start http://www.example.com » Infact, вы всегда можете вызывать программы по умолчанию с помощью команды start. Для ex start abc.mp3 вызовет mp3-плеер по умолчанию и загрузит запрошенный mp3-файл.

Его очень просто написать ниже код:

 String s = "http://www.google.com"; Desktop desktop = Desktop.getDesktop(); desktop.browse(URI.create(s)); 

или если вы не хотите загружать URL-адрес, просто напишите имя своего браузера в строковые значения, например,

 String s = "chrome"; Desktop desktop = Desktop.getDesktop(); desktop.browse(URI.create(s)); 

он автоматически откроет браузер с пустым URL после выполнения программы

  • Click не работает с Listitem Listview android
  • Как нарисовать круг внутри круга с помощью форм xml?
  • В чем разница между ServletContextHandler.setResourceBase и ResourceHandler.setResourceBase при использовании встроенного контейнера Jetty?
  • Как динамически загружать Java-class на android / dalvik?
  • возобновление деятельности извещения
  • Ориентация изображения - Android
  • Преобразовать строку в строку, разделенную запятыми, в java
  • массив байтов к массиву Int
  • Исключение в streamе "main" java.lang.NoSuchMethodError: main
  • Загрузка Android из URL в Bitmap
  • Почему main () в java void?
  • Interesting Posts

    Как получить данные из DialogFragment в fragment?

    Почему Google намного быстрее, чем поиск на жестком диске?

    Как заставить Windows 7 создать новый профиль домена с тем же именем, что и существующий?

    Как я могу использовать скриншоты браузера с более высоким разрешением, чем поддерживает мой браузер?

    Получение всех типов в пространстве имен посредством отражения

    Использовать зарезервированное ключевое слово enum case

    Ссылка на содержимое ячейки памяти. (режимы адресации x86)

    подтвердите выпадающий список в asp.net mvc

    Найти файл с определенным расширением в папке

    Групповые файлы в Visual Studio

    Экспортируйте каждый лист в отдельный файл csv

    Как заблокировать веб-сайты в файле localhost?

    Что такое проверенные исключения в Java / C #?

    Есть ли способ программно преобразовать строки форматирования VB6 в строки форматирования .NET?

    Захват stdout из команды system () оптимально

    Давайте будем гением компьютера.