如何在Linux上找到Java Desktop API的库?

 2023-01-19    385  

问题描述

我正在尝试找到一种方法来确定Java需要使用桌面API的方法,特别是BROWSE函数.我阅读了一些指南,错误报告和解决方法,但它们都没有起作用.

我能够通过安装libgnome2-0和gvfs-backends软件包使其在Debian上工作.通常建议使用第一个(通过解决相同问题的人们),第二个是一个幸运的猜测,因为桌面API似乎需要VFS.但是,即使安装了这两个软件包,我也无法在Ubuntu 14.04上进行这项工作.

如何在Linux上找到Java Desktop API的库?

所以我的问题是:如何找到Java桌面API在Linux上需要哪些库?特别是Ubuntu上的Oracle JDK 8 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桌面API浏览功能所需的本机库.我无法触摸调用浏览的代码.

edit2 :我尝试在另一台机器上安装带有完整的gnome环境的新的Ubuntu 14.04,并且可以正常工作.但是,我真的很想避免这种情况,因为它添加了1.5GB的(主要是)未使用的库.仍在寻找一种方法来找到Java完全或至少从失败的地方进行某种输出的方法.

推荐答案

进入来源在这里可能会有所帮助.通过 makefile “> makefile “> makefile ,我发现这些包括:

EXTRA_INCLUDES = `pkg-config --cflags glib-2.0` \
                 `pkg-config --cflags libgnome-2.0` \
                 `pkg-config --cflags gnome-vfs-2.0`\
                 `pkg-config --cflags gnome-vfs-module-2.0` \
                 `pkg-config --cflags bonobo-activation-2.0` \
                 `pkg-config --cflags libbonobo-2.0` \
                 `pkg-config --cflags ORBit-2.0` \
                 `pkg-config --cflags gconf-2.0`

,您有:)

其他推荐答案

我只是一个想法:也许您可以使用ltrace而不是strace?

ltrace -e open,access -f -o browse java -jar BrowseTester.jar

以上所述是小编给大家介绍的如何在Linux上找到Java Desktop API的库?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/25781.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。