我已经编译了示例代码,现在运行该程序,并收到以下消息:
[oracle @ machine jxgrabkey-0.2.1_i386] $ java -classpath lib / JXGrabKey.jar:示例JXGrabKeyTest 线程“ main”中的异常** java.lang.UnsatisfiedLinkError:** /home/oracle/javasample/jxgrabkey-0.2.1_i386 /lib/libJXGrabKey.so:/usr/lib/libstdc++.so.6: 在Java上找不到版本'GLIBCXX_3.4.9'(/home/oracle/javasample/jxgrabkey-0.2.1_i386/lib/libJXGrabKey.so必需)JXGrabKeyTest.main(JXGrabKeyTest.java.lang.System.load (libgcj.so.7rh) 处的java.lang.Runtime.load(libgcj.so.7rh) 中的.lang.Runtime._load(libgcj.so.7rh) Java:17)
我知道如何在Windows中处理此问题(仅通过将DLL添加到PATH env var中),但是我不确定Linux。
我已经阅读了有关LD_LIBRARY_PATH和其他一些env var的内容,但是我可以使其正常工作。
有什么建议吗?
编辑
我可以告诉:
我的系统是:Linux 2.6.18-53.el5
我的GCC版本是(are):
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。
我猜我将不得不等待它来临,否则作者将在以前的版本中重新编译它。
谢谢,非常感谢您的帮助。
你尝试了-Djava.library.path=/path/to/library
吗?
编辑:重新读取该错误消息,在我看来,您正在加载的本机库正试图链接到glibc版本3.4.9,这显然没有安装。您可以检查您使用的glibc版本吗?您正在运行什么Linux发行版?
EDIT2:问题似乎仅限于libstdc ++。我将尽我所能,但是该线程可能有用。建议升级到gcc 4.2;从注释中,您似乎具有版本4.1.2。让我知道那是否行不通。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句