在CentOS7下,JNotify编译好的动态库无法使用,自己编译了以下,供参考。
需要安装gcc, make, jdk, jdk-devel
CentOS7中安装很方便:
yum install -y java-1.8.0-openjdk.x86_64
yum install -y java-1.8.0-openjdk-devel.x86_64
rpm -qa | grep jdk
从列出的包中找到jdk-devel包的具体名称,再查询安装位置:
rpm -qs java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64
从上面的命令中就可以看到jni.h头文件和jni_md.h的具体位置,用于替换下面的-I后面的文件(需要包含的文件位置)。
以下代码中的include文件目录需要依据具体安装来定。
gcc -shared -fPIC -I/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/include/ -I/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/include/linux/ net_contentobjects_jnotify_linux_JNotify_linux.c -o libjnotify.so