Я пытаюсь найти способ определения того, какие библиотеки требуется Java для Desktop API, в частности функция BROWSE
. Я прочитал несколько руководств, отчеты об ошибках и обходные пути, но никто из них не работает.
Я смог заставить его работать с Debian, установив пакеты libgnome2-0
и gvfs-backends
. Первый, как правило, рекомендуется (людьми, которые решают одну и ту же проблему), второй - удачное предположение, потому что кажется, что API-интерфейс Desktop необходим для vfs. Однако я не могу выполнить эту работу на Ubuntu 14.04 даже при установке этих двух пакетов.
Итак, мой вопрос: как я могу найти, какие библиотеки требует Java Desktop API для Linux? В частности, Oracle JDK 8 на Ubuntu 14.04. Можно ли каким-то образом захватить библиотеки, которые используют API-интерфейс для рабочего стола, или получить некоторые ошибки из собственного кода?
EDIT: я создал один код строки, который пытается использовать просмотр:
public class Main {
public static void main(String[] args) throws URISyntaxException, IOException {
Desktop.getDesktop().browse(new URI("http://www.google.com"));
}
}
Я попытался запустить команду для трассировки всех файлов, которые были запрошены во время выполнения теста:
strace -e open,access -f -o browse java -jar BrowseTester.jar
Я получаю много результатов, указывающих, что и родные библиотеки java native, и linux, которые просматриваются, находятся и доступны, но я не уверен, как обнаружить то, что на самом деле отсутствует.
Пример вывода:
30171 open("/usr/lib/x86_64-linux-gnu/gvfs/tls/x86_64/libgvfscommon.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
30171 open("/usr/lib/x86_64-linux-gnu/gvfs/tls/libgvfscommon.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
30171 open("/usr/lib/x86_64-linux-gnu/gvfs/x86_64/libgvfscommon.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
30171 open("/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so", O_RDONLY|O_CLOEXEC) = 11
Мне нужно, как определить, какие родные библиотеки необходимы для функциональности просмотра Java Desktop API. Я не могу коснуться кода, вызывающего просмотр.
EDIT2. Я попытался установить новый Ubuntu 14.04 с полной средой Gnome на другой машине, и он работает. Однако я бы очень хотел этого избежать, потому что он добавляет 1,5 ГБ (в основном) неиспользуемых библиотек. Все еще ищете способ найти то, что Java требует точно или, по крайней мере, какой-то выход из того места, где он терпит неудачу.