Как открыть ссылку в браузере через Java?

Нужно открыть заданную ссылку через основной браузер на Java.


Ответы (1 шт):

Автор решения: Михаил Ребров

Если Вы хотите открыть ссылку в браузере из вашего приложения в Desktop окружении, то можете воспользоваться классом java.awt.Desktop.

Данный класс позволяет Java запускать приложения, зарегистрированные в системе для обработки выбранных файлов или URI.

Данный класс поддерживает:

  • запуск браузера по умолчанию
  • запуск почтового клиента по умолчанию
  • запуск приложения ассоциированного с определенным типом файла, для его обработки (например, дефолтный музыкальный проигрыватель для открытия mp3 или блокнот для открытия txt)

Открыть брайзер с его помощью можно примерно так:

Desktop.getDesktop().browse(new URI("https://ru.stackoverflow.com"));

Каждая операция представляет собой тип действия, представленный классом Desktop.Action.
Для открытия ссылки нам необходимо действие Desktop.Action.BROWSE.

Во избежания непредвиденных ошибок необходимо:

  • проверить поддержку Desktop окружения
    Desktop.isDesktopSupported()
  • проверить поддержку необходимого действия
    Desktop.getDesktop().isSupported(Desktop.Action.BROWSE))

С проверкой поддержки вызов будет выглядеть следующим образом:

if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
    Desktop.getDesktop().browse(new URI("https://ru.stackoverflow.com"));
}

И полноценный рабочий пример:

import java.io.IOException;
import java.net.URISyntaxException;
import java.awt.Desktop;
import java.net.URI;

public class Test {
    public static void main(String[] args) {
        try{
            if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
                Desktop.getDesktop().browse(new URI("https://ru.stackoverflow.com/"));
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (URISyntaxException e) {
            throw new RuntimeException(e);
        }
    }
}

Документация: https://docs.oracle.com/javase/7/docs/api/java/awt/Desktop.html

→ Ссылка