Java: как запустить зарегистрированное приложение системы для URL - PullRequest
1 голос
/ 19 июня 2009

В Java 5 есть ли способ передачи URL-адреса в систему по умолчанию и запуск приложения, связанного с ней? Например, ссылки http: // обычно открывают IE или Firefox, но такие вещи, как itms: // должны открывать iTunes.

Если возможно, я бы предпочел не использовать Runtime.exec () для непосредственного запуска какого-либо внешнего процесса, поскольку это зависит от платформы. Если нет другого пути, что бы я назвал Windows / OS X и Linux, чтобы охватить наиболее популярные из них?

Ответы [ 6 ]

4 голосов
/ 19 июня 2009

Используйте Java Desktop API

 Desktop desktop =  Desktop.getDesktop();
 if (desktop.isSupported(Desktop.Action.BROWSE)) {
     desktop.browse(uri);
 }
2 голосов
/ 19 июня 2009

Я согласен с ivan, что Java Desktop API будет работать, но только 6.

Я знаю, как это сделать в Windows (это включает в себя выполнение rundll32.dll), но я немного прогуглил, и эта ссылка кажется вашим лучшим вариантом.

Надеюсь, это поможет.

1 голос
/ 19 июня 2009

BrowserLauncher делает то, что вам нужно.

1 голос
/ 19 июня 2009

Для Java 5 попробуйте JDIC. Имеет кроссплатформенную поддержку , открывающую зарегистрированное приложение ОС для файла. Если я правильно помню, это послужило основой для подобного API добавлен в Java 6.

0 голосов
/ 19 июня 2009

Похоже, что вы хотите java.awt.Desktop но я думаю, что он был представлен в 1.6 и не был доступен в 5 ...: - (

0 голосов
/ 19 июня 2009

Windows это "start [URI]", OSX это "open [URI]", Linux не имеет эквивалента, поскольку все зависит от их оконного менеджера.

Что касается того, открывает ли itms: // iTunes, все зависит от их конфигурации.

Ответ Ивана выглядит намного лучше, чем мой.

...