2

ファイルの変更についてディレクトリを監視するために、centos 5.4(64ビット)ボックスでjnotifyをセットアップしようとしています。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」がないことを示しています。誰かが同様の問題に直面したかどうか知りたいだけですか?

これに関するポインタは高く評価されます。

ありがとう

4

1 に答える 1

4

OK、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ファイルを再起動します。問題が解決するはずです。

于 2012-09-29T00:58:42.107 に答える