#linux #java #desktop
Задача в том, чтобы открывать файл или папку из java-приложения. Воспользовался советом на форуме. Но оказывается это не работает в Linux, т.к. Desktop.isDesktopSupported() == false. Как сделать, чтобы программа заработала и на Linux тоже?
Ответы
Ответ 1
Как-нибудь так: try { if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { Desktop.getDesktop().browse(new URI(url)); } else { string os = System.getProperty("os.name"); if (!(os.startsWith("Mac OS")) && !(os.startsWith("Windows"))) { Runtime r = Runtime.getRuntime(); for (String b : list /* google-chrome, firefox, opera */) { Process p = r.exec(new String[]{"which", b}); InputStream is = p.getInputStream(); if (is.read() != -1) { r.exec(new String[]{b, url}); return; } } } } } catch (Throwable t) { }Ответ 2
Согласно информации с сайта oracle, в системе Linux данный функционал доступен только при наличии библиотек gnome. Если эти библиотеки не установлены, метод возвращает false. Mожно попробовать просто запускать необходимую программу. Что то вроде: Runtime.getRuntime().exec("/usr/bin/firefox www.hashcode.ru");
Комментариев нет:
Отправить комментарий