Обходной путь для браузера по умолчанию для Linux? - PullRequest
1 голос
/ 19 мая 2009

Я пытаюсь использовать Рабочий стол .browse () для вызова URL, это прекрасно работает на машинах Windows или Linux с настроенным браузером по умолчанию. Тем не менее, он генерирует исключение IOException, когда браузер по умолчанию не найден в Linux. Каковы некоторые из способов обойти это? Я полагаю, что могу попытаться запустить Firefox и предположить, что он там есть, но я не хочу делать такое предположение.

Ответы [ 6 ]

9 голосов
/ 19 мая 2009

Вы можете разрешить пользователю вводить команду, которую он хочет, чтобы запустить свой браузер, а затем сохранить эту команду, чтобы он использовал эту команду каждый раз.

7 голосов
/ 19 мая 2009

Не думаю, что вы могли бы многое сделать за пределами:

  1. Проверка в общих местах для общих браузеров (Firefox, Mozilla и т. Д.)
  2. Выполните итерацию переменной среды PATH для поиска распространенных исполняемых файлов браузера.
  3. Спросите пользователя в конфигурации.

Кроме того, есть целый раздел FAQ SWT , посвященный поиску подходящей версии firefox для использования в конкретной системе (продолжайте читать вопросы, начиная с ссылки, указанной выше).

3 голосов
/ 19 мая 2009

try xdg-open или просто попробуйте konqueror (по умолчанию в KDE, но не поддерживается Desktop API) и firefox.

Попробуйте также url-адрес kmclient exec.

if (Desktop.isDesktopSupported()) {
   desktop = Desktop.getDesktop();
   // blah blah
} else {
   // try to launch xdg-open
   // or try launching other browsers?
} 
2 голосов
/ 19 мая 2009

Похоже, что Desktop.browse () в конечном счете вызывает XDesktopPeer.browse () для * ix. Этот метод реализуется путем вызова gnome_url_show . В некоторых случаях это, вероятно, работает нормально, но xdg-open - это кроссплатформенное решение, как уже отмечали другие.

Возможно, это ошибка в Sun Java. Ошибка 6490730 , «Рабочий стол выдает IOException вместо отображения URL-адреса или отправки почты», (сообщается в ноябре 2006 г.) представляется актуальным

2 голосов
/ 19 мая 2009

Вы можете попробовать различные браузеры в некотором порядке - Firefox, Opera и т. Д .; также сохраните редактируемый файл конфигурации, который позволяет пользователю установить браузер, запомнить тот, который вы нашли, и т. д.

1 голос
/ 19 мая 2009

Попробуйте выполнить xdg-open http://the/url сначала , если вы собираетесь реализовать один из «циклически проходящих через несколько браузеров». Это должно открыть браузер по умолчанию , если по какой-то причине Java не может его найти. (Похоже, в любом случае это то, что делает Java.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...