【问题标题】:Required JDK 1.6 rpm for x64 Redhatx64 Redhat 所需的 JDK 1.6 rpm
【发布时间】:2011-04-08 17:42:49
【问题描述】:

我从 Sun 下载了 jdk-6u21-linux-x64-rpm.bin 并安装了 Java。在执行期间,提取的 rpm 是 jdk-6u21-linux-amd64.rpm。

我正在尝试构建一个需要 libjvm.so 的应用程序。在上面的 JDK 中,它位于 /usr/java/jdk1.6.0_21/jre/lib/amd64/server/libjvm.so 结果,我收到如下编译错误:

-lpegcommon -L/usr/java/jdk1.6.0_21/jre/lib/amd64/server -ljvm -ldl -lpthread -lcrypt
/usr/bin/ld:搜索-ljvm时跳过不兼容的/usr/java/jdk1.6.0_21/jre/lib/amd64/server/libjvm.so
/usr/bin/ld: 找不到 -ljvm
collect2: ld 返回 1 个退出状态

在哪里可以找到 x86_64 的 JDK rpm?或安装 libjvm.so 的 rpm
/usr/java/jdk1.6.0_21/jre/lib/x86_64/server/libjvm.so?

谢谢,

【问题讨论】:

    标签: java jvm redhat rpm jdk1.6


    【解决方案1】:

    RPM 没问题。

    恕我直言,您是否检查了对包含 libjvm.so 的路径的访问权限?是当前用户的r-x吗?

    您也可以尝试不混合“-L”和“-l”开关(在链接命令中的任何-l之前都有所有-L)因为gcc似乎不太喜欢这种混合。

    【讨论】:

      【解决方案2】:

      由于最终是您要安装的 rpm,因此您可以将 rpm 的内容重新定位到任何您想要的位置。

      列出 RPM 的内容:rpm -qpl jdk-6u21-linux-amd64.rpm,然后为每个基本目录(/etc、/usr、\etc、\etc)使用重定位语句。假设 RPM 包含 /etc 和 /usr/sbin 中的文件,然后将 /usr/sbin 重定位到 /usr/local/sbin 您将使用 rpm -i --relocate /usr/sbin=/usr/local/sbin jdk-6u21-linux-amd64.rpm

      【讨论】:

        猜你喜欢
        • 2011-12-09
        • 1970-01-01
        • 2011-03-04
        • 1970-01-01
        • 2016-12-20
        • 1970-01-01
        • 1970-01-01
        • 2015-01-16
        • 1970-01-01
        相关资源
        最近更新 更多