我正在尝试找到一种方法,以确定
Java需要哪些库来支持Desktop API,特别是BROWSE功能.我读了几个指南,错误报告和解决方法,但没有一个工作.
我可以通过安装libgnome2-0和gvfs-backends软件包来使Debian工作.第一个通常被推荐(人们解决相同的问题),第二个是幸运的猜测,因为似乎Desktop API需要vfs.但是,即使安装这两个软件包,我也不能在Ubuntu 14.04上进行这项工作.
所以我的问题是:如何找到Java Desktop API在Linux上需要哪些库?特别是Oracle JDK 8在Ubuntu 14.04上.有可能以某种方式捕获哪些库是桌面API使用或从本机代码获取一些错误输出?
编辑:我创建了一行试图使用浏览器的代码:
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本机和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.5GB(大部分)未使用的库.仍然寻找一种方法,如何找到什么Java需要完全或至少某种类型的输出从它失败的地方.