Как получить класс Desktop, поддерживаемый в Linux? - PullRequest
8 голосов
/ 24 ноября 2011

Я пишу Java-приложение и хочу открыть ссылку из моей программы в интернет-браузере пользователя по умолчанию. Я попытался использовать класс Desktop следующим образом:

if (Desktop.isDesktopSupported()) {
    Desktop desktop = Desktop.getDesktop();
    if (desktop.isSupported(java.awt.Desktop.Action.BROWSE)) {
        try {
            URI uri = new URI(url); // url is a string containing the URL
            desktop.browse(uri);
        }
        catch (URISyntaxException ex) {
            Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

Однако сначала if возвращает false. Моя ОС - новейшая версия Ubuntu. Кто-нибудь знает, как получить поддержку рабочего стола в Java?

Ответы [ 2 ]

8 голосов
/ 17 августа 2012

Вам не нужно запускать java-код на рабочем столе Gnome как таковой.Вам просто нужно установить библиотеки Gnome, чтобы Java распознала их (как сказал ccheneson).

Если вы работаете с новой версией Ubuntu, она не поставляется с библиотеками gnome, потому что она использует Unity.Попробуйте установить libgnome2-0.Когда я установил его, в него вошли несколько других пакетов (libbonobo2-0, libbonobo2-common, libgnomevfs2-0, libgnomevfs2-common), поэтому я не знаю, достаточно ли libgnome2-0 или необходимы какие-либо другие,Но затем моя система Ubuntu 12.04 была распознана Java API.

Я знаю, что этот пост относительно старый - но этот вопрос находится в разных местах в Интернете, и единственное место, где я нашел «правильный» ответ (дляя) был здесь

5 голосов
/ 24 ноября 2011

С эта статья

Используйте метод Desktop.isDesktopSupported (), чтобы определить, Настольный API доступен. Об операционной системе Solaris и Платформа Linux, этот API зависит от библиотек Gnome. Если те библиотеки недоступны, этот метод вернет false. После определение того, что API поддерживается, то есть isDesktopSupported () возвращает true, приложение может получить Экземпляр рабочего стола с использованием статического метода getDesktop ().

Попробуйте запустить свой код на рабочем столе Gnome.

...