最近在工程中用到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是一个轻量级的Java库,用于监听文件系统中的文件和目录的创建、修改和删除事件。...同时,如果你遇到Jnotify的特定问题或者需要扩展其功能,拥有源码将使这些问题的解决变得更为直接和便捷。
其中一个提升开发效率的重要特性就是“热部署”(Hot Swap),它允许开发者在不重启应用的情况下更新代码并立即看到结果。热部署插件对于快速迭代和调试项目有着显著的优势,避免了每次修改代码后都需要重新编译、...
jnotify32 位
在Windows环境下,它依赖于`dll`动态链接库,而在Linux环境下则依赖于`so`共享对象库。本压缩包中提供了`win32.dll`和`libjnotify.so`,分别对应Windows和Linux的库文件。 接下来,我们来看如何在Java项目中集成...
jnotify_64bit jnotify_64bit jnotify_64bit jnotify_64bit
包括jnotify工具 jar包、动态链接库以及源码资料 ...在linux系统中,调用的是linux底层的inotify服务,只是添加了对子文件夹级联监控的功能。在windows中,需要添加附件的dll文件,因为windows默认没有该服务。
**jNotify提示插件详解** 在网页开发中,实时通知用户是提高用户体验的重要一环。jNotify是一款设计精美、功能强大的JavaScript提示插件,它以其大气且好看的样式,深受开发者和设计师的喜爱。这款插件能够轻松地在...
这个压缩包“jnotify(包含dll与so).rar”包含了jnotify库在Windows和Linux操作系统上的实现,即32位和64位的动态链接库(dll)以及共享对象文件(so)。 首先,我们要理解jnotify的核心功能。jnotify是一个Java库,...
`jnotify`库通过JNI(Java Native Interface)与操作系统底层交互,因此可以跨平台工作,包括Windows、Linux和Mac OS X。在`jnotify`中,你可以注册对单个文件或整个目录的监控,并设置监听的事件类型,如文件创建、...
- **错误处理**:在程序中捕获到错误时,使用jNotify显示错误信息,帮助用户了解问题所在。 - **教程提示**:在引导用户了解新功能或界面时,可以利用jNotify提供临时指导。 总的来说,jQuery jNotify是实现轻量级...
为了解决这一问题,`jnotify-lib-0.93`应运而生,它是一个优秀的Java库,通过JNI(Java Native Interface)调用系统级别的DLL(动态链接库)来实现对目录变化的高效监听。 `jnotify-lib-0.93`的核心功能是提供一个...
4. **线程安全与同步**:在热部署过程中,必须确保类加载过程的线程安全,防止多线程环境下出现数据不一致的问题。 5. **类的隔离**:热部署可能涉及到多个版本的同一类共存,因此需要处理好类的隔离问题,防止不同...
jnotify支持Windows、Linux和Mac OS X操作系统,覆盖了大多数开发环境。 在jnotify-lib-0.93这个版本中,包含的主要组件有: 1. **API接口**:提供了简单易用的Java API,开发者可以方便地注册监听器,监听指定...
jNotify是一款轻量级的JavaScript插件,它专门用于创建操作结果信息提示条,帮助开发者轻松地在页面上显示通知消息,让用户了解他们的操作是否成功或者存在什么问题。这种提示通常会出现在屏幕的底部或顶部,以非...
openrasp-jnotify一个改造过的 jnotify 版本改造点,补全linux inotify 事件监听,使监听事件更全面支持更低版本的 linux内核支持32位linux使用 IDEA 编译即可
JNotify 基于Jquery的消息提示插件 参数 var defaults = { // 容器 notifyContainer 'className':'JNotify-danger', //容器 notifyContainer附加类名 'theme':'error', // 主题 “success”、“error”、...
jnotify 程序目录中的libjnotify.so是linux32操作系统中的动态链接库, 没有 linux 64操纵系统下 的动态链接库文件,这个是在网上淘到的分享给大家。libjnotify64.so
在Windows、Linux和Mac OS X等主流操作系统上,jnotify-api都能很好地工作。 jnotify-api的核心功能包括: 1. **文件创建**:当新的文件或目录在被监视的路径下创建时,jnotify-api会触发相应的回调事件。 2. **...
jquery-notify, 在UI小部件工厂的顶部,像通知系统这样的growl/ubuntu jQuery UI 通知小部件像通知一样创建 growl/ubuntu 。使用 RGBA 。border-radius 和 box-shadow,所以它们在当前的IE 中并不像以前那么漂亮。...