我已经成功进入 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(使用前将#替换为@)