最近在工程中用到JNotify,linux下部署的时候需要引入libjnotify.so,具体的布置可参考http://lichuanbao.iteye.com/blog/1335253.
系统启动时,一直抛出异常java.lang.NoClassDefFoundError: Could not initialize class net.contentobjects.jnotify.JNotify。localhost.*.log日志中抛出异常java.lang.UnsatisfiedLinkError: no jnotify in java.library.path
按照网上说明,配置libjnotify.so,重启;tomcat的日志中依旧抛异常信息java.lang.NoClassDefFoundError: Could not initialize class net.contentobjects.jnotify.JNotify。
确认了JNotify的jar包及libjnotify.so都已经正确的配置了,后来发现在tomcat的localhost.*.log日志中抛出异常java.lang.UnsatisfiedLinkError: /var/hmp/libjnotify/libjnotify.so: /var/hmp/libjnotify/libjnotify.so: wrong ELF class: ELFCLASS64 (P
ossible cause: architecture word width mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
原因是引入的libjnotify.so是64位系统的,而本身工程布置的linux为32位机,libjnotify.so与linux内核不符。
重新上传32位的libjnotify.so,重启,异常信息还是java.lang.NoClassDefFoundError: Could not initialize class net.contentobjects.jnotify.JNotify。而tomcat的localhost.*.log日志中抛出异常java.lang.UnsatisfiedLinkError: /usr/java/jdk1.6.0_34/jre/lib/i386/libjnotify.so: /lib/libc.so.6: version `GLIBC_2.12' not found (required by /usr/java/jdk1.6.0_34/jre/lib/i386/libjnotify.so)。
[root@localhost i386]# ldd -v libjnotify.so
ldd: warning: you do not have execution permission for `./libjnotify.so'
./libjnotify.so: /lib/libc.so.6: version `GLIBC_2.12' not found (required by ./libjnotify.so)
linux-gate.so.1 => (0x0032f000)
libc.so.6 => /lib/libc.so.6 (0x00c4c000)
/lib/ld-linux.so.2 (0x002b2000)
Version information:
./libjnotify.so:
libc.so.6 (GLIBC_2.12) => not found
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
/lib/libc.so.6:
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
网上搜索到的解决方法有两个:
1、You can upgrade your CentOS version to 6.* to get the GCLIB_2.12 and above.
2、 you need create a libjnotify.soand remove the dependency on GCLIB_2.12
具体方法为:
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
[root@localhost Release]# ldd -v libjnotify.so linux-gate.so.1 => (0x00d60000) libc.so.6 => /lib/libc.so.6 (0x008d7000) /lib/ld-linux.so.2 (0x002b2000) Version information: ./libjnotify.so: libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/libc.so.6 libc.so.6 (GLIBC_2.0) => /lib/libc.so.6 /lib/libc.so.6: ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2 ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2 ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
另外一种方式:可以更换适合版本的libjnotify.so (我的工程中按照上述第二种方式及更换libjnotify.so为0.93版的均实验通过)
相关推荐
jNotify漂亮的提示插件
jnotify32 位
包括jnotify工具 jar包、动态链接库以及源码资料 ...在linux系统中,调用的是linux底层的inotify服务,只是添加了对子文件夹级联监控的功能。在windows中,需要添加附件的dll文件,因为windows默认没有该服务。
这个是Jnotify的源码,相关配置,及jar包。是我千辛万苦找到的,希望能帮上大家,免去寻找的麻烦。
jnotify_64bit jnotify_64bit jnotify_64bit jnotify_64bit
jnotify(包含dll与so) 需要的下载..
基于 Jquery 的 Nitofication 元件. 提供很基本但實用的功能. 文檔大小只有2K.
NULL 博文链接:https://andilyliao.iteye.com/blog/634586
在电脑C盘中找到Idea的插件目录,然后直接将这个文件拷贝进去即可使用
jNotify:操作结果信息提示条
openrasp-jnotify一个改造过的 jnotify 版本改造点,补全linux inotify 事件监听,使监听事件更全面支持更低版本的 linux内核支持32位linux使用 IDEA 编译即可
jnotify-lib-0.93 通过java调用dll 实现目录变化的系统事件通知,比轮询 多线程监控 更胜一筹
通过java代码利用JNotify工具实现监控一个文件夹下的文件或者文件夹的动态变化,资料包含文件代码,maven依赖,dll动态库(win和linux)
jnotify-lib-0.93.rar java监听硬盘的引用包,可以通过java来监听到硬盘上的创建、修改、删除文件的动作等等
JNotify 基于Jquery的消息提示插件 参数 var defaults = { // 容器 notifyContainer 'className':'JNotify-danger', //容器 notifyContainer附加类名 'theme':'error', // 主题 “success”、“error”、...
jnotify 程序目录中的libjnotify.so是linux32操作系统中的动态链接库, 没有 linux 64操纵系统下 的动态链接库文件,这个是在网上淘到的分享给大家。libjnotify64.so
jquery-notify, 在UI小部件工厂的顶部,像通知系统这样的growl/ubuntu jQuery UI 通知小部件像通知一样创建 growl/ubuntu 。使用 RGBA 。border-radius 和 box-shadow,所以它们在当前的IE 中并不像以前那么漂亮。...
jnotify-api jnotify 是一个 api 通知,旨在在由 java 创建的应用程序中提供信息性消息
可以设置让消息在页面的四个角落出现,也可以设置在页面中央出现。可以手动关闭消息,也可以设置成自动关闭。 http://thrivingkings.com/sticky/ 2)JNotify是一个JQuery插件,基于JQuery UI实现,用于创建页面...