-->

问题与运行jNotify在Linux版本(CentOS 5.4)(Issue with runnin

2019-09-23 03:00发布

我试图建立jnotify在一个CentOS 5.4(64位)框监视文件更改目录。 我通过将libjnotify.so在Java库路径遵循的指令。 这是我进入


java -Xms64m -Xmx2048m -Djava.library.path=. -Dfile.encoding=UTF-8 -jar test-1.1.0.jar

当我尝试执行它,我收到以下异常


Exception in thread "main" java.lang.UnsatisfiedLinkError: /root/testprocessor/libjnotify.so: /lib64/libc.so.6: version `GLIBC_2.12' not found (required by /root/testprocessor/libjnotify.so)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1778)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1028)
        at net.contentobjects.jnotify.linux.JNotify_linux.(Unknown Source)
        at net.contentobjects.jnotify.linux.JNotifyAdapterLinux.(Unknown Source)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at net.contentobjects.jnotify.JNotify.(Unknown Source)

错误肯定指向CentOS中缺少库“GLIBC_2.12”。 只是想知道是否有人遇到了类似的问题?

在此任何指针将高度赞赏。

谢谢

Answer 1:

好吧,用CentOS的怪胎的帮助下解决了。 只要一想到,如果有人遇到类似的问题,共享答案。

  1. 您可以将您的CentOS版本升级到6 *获得GCLIB_2.12以上。

  2. 如果你是在我的情况下版本升级是不是一种选择,你需要创建一个libjnotify.so和删除GCLIB_2.12的依赖。 这里有您需要通过检查jNotify源代码做什么。


cd ~/compile
mkdir jnotify
cd jnotify
unzip ~/downloads/jnotify-lib-0.94.zip
mkdir src
cd src
unzip ../jnotify-native-linux-0.94-src.zip
cd Release
export C_INCLUDE_PATH=/usr/java/jdk1.7.0_07/include/:/usr/java/jdk1.7.0_07/include/linux/
make

这将产生libjnotify.so,把它复制到你的Java库路径,然后重新启动jar文件。 它应该解决的问题。



文章来源: Issue with running jNotify in linux (CentOS 5.4)