Linux 中的 java.lang.UnsatisfiedLinkError

2023-12-03

我已经成功进入 Linux 机器来尝试中建议的 HotKey 库这个答案。

我已经编译了示例代码,现在运行该程序并收到以下消息:



[oracle@machine jxgrabkey-0.2.1_i386]$ java -classpath lib/JXGrabKey.jar:Example JXGrabKeyTest

Exception in thread "main" **java.lang.UnsatisfiedLinkError:** /home/oracle/javasample/jxgrabkey-0.2.1_i386/lib/libJXGrabKey.so: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /home/oracle/javasample/jxgrabkey-0.2.1_i386/lib/libJXGrabKey.so)
   at java.lang.Runtime._load(libgcj.so.7rh)
   at java.lang.Runtime.load(libgcj.so.7rh)
   at java.lang.System.load(libgcj.so.7rh)
   at JXGrabKeyTest.main(JXGrabKeyTest.java:17)

  

我知道如何在 Windows 中处理这个问题(只需将 DLL 添加到 PATH env var ),但我对 Linux 不太确定。

我已经阅读了有关 LD_LIBRARY_PATH 和其他一些环境变量的内容,但我可以使其工作。

有什么建议吗?

EDIT

在得到迈尔斯的支持后发现问题并阅读这个线程 and 这个其他.

我可以告诉:

我的系统是:Linux 2.6.18-53.el5

我的 GCC 版本是(是):

gcc-c++-4.1.2-14.el5

gcc-gfortran-4.1.2-14.el5

libgcc-4.1.2-14.el5

gcc-4.1.2-14.el5

问题是我需要 gcc 4.2.0

Aaand 显然我的系统没有 gcc 4.2.0。

我想我必须等待它到来或者作者在以前的版本中重新编译它。

mmyers,非常感谢您的帮助。


你试过了吗-Djava.library.path=/path/to/library?

EDIT:重新阅读错误消息,在我看来,您正在加载的本机库正在尝试链接到 glibc 版本 3.4.9,但显然尚未安装。你能检查一下你的glibc是什么版本吗?您正在运行什么 Linux 发行版?

EDIT2:问题似乎缩小到 libstdc++。我即将到达我的知识的边缘,但是这个线程可能有用。建议升级到gcc 4.2;从评论来看,您似乎拥有版本 4.1.2。如果这不起作用,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 中的 java.lang.UnsatisfiedLinkError 的相关文章

随机推荐