jnetpcap.so: libpcap.so.0.8: 无法打开共享对象文件: 没有那个文件或目录,解决办法

jnetpcap在windows下和linux下需要不同的包(如共享库,在windows下是.dll,在linux下是.so文件案),所以跨平台编译会遇见问题,感觉主要的问题还是libpcap的版本问题(在ubuntu下编译直接解决问题1问题2就结束了,centos上libpcap版本不兼容,只好强行修改)

在centos 7下编译含jnetpcap包的文件(libpcap已经安装完毕)

问题1: 出现错误:

java.lang.UnsatisfiedLinkError: no jnetpcap in java.library.path
用下面的链接下载:jnetpcap-1.3.0-1.ubuntu.x86_64.tgz
https://sourceforge.net/projects/jnetpcap/files/jnetpcap/1.3/jnetpcap-1.3.0-1.ubuntu.x86_64.tgz/download

下载完成后解压并复制到项目的lib文件夹下,后用idea导入依赖(包括jar包)

问题2:出现错误:

jnetpcap com.slytechs.library.NativeLibrary.dlopen(Ljava/lang/String;)J

使用idea导入下载的jnetpcap包中的.so文件,并且将该文件复制到jdk/jre/lib/amd64(自己的jdk目录中)

问题3:出现错误:

re/lib/amd64/libjnetpcap.so: libpcap.so.0.8: 无法打开共享对象文件: 没有那个文件或目录

找到libpcap.so文件:
使用命令查看安装版本$ rpm -qa | grep libpcap

libpcap-1.5.3-11.el7.x86_64

找出该版本的对应文件$ rpm -ql libpcap-1.5.3-11.el7.x86_64

/usr/lib64/libpcap.so.1
/usr/lib64/libpcap.so.1.5.3
/usr/share/doc/libpcap-1.5.3

/usr/share/doc/libpcap-1.5.3/CHANGES
/usr/share/doc/libpcap-1.5.3/CREDITS
/usr/share/doc/libpcap-1.5.3/LICENSE
/usr/share/doc/libpcap-1.5.3/README
/usr/share/man/man7/pcap-filter.7.gz
/usr/share/man/man7/pcap-linktype.7.gz
/usr/share/man/man7/pcap-tstamp.7.gz

发现只有libpcap.so.1,没有libpcap.so.0.8,将libpcap.so.1复制备份一份,并修改名字为libpcap.so.0.8

再次运行,可以使用

若还是存在无法找到文件的问题

将libpcap.so.1所在目录添加到文件/etc/ld.so.conf中,

打开ld.so.conf文件,然后将libpcap.so目录添加进去

includeld.so.conf.d/*.conf   #原来的内容
# 自己的目录
/usr/lib64
/usr/local/lib

然后保存,再终端下执行 ldconfig

参考网址:
https://blog.csdn.net/weixin_35757704/article/details/78625091

你可能感兴趣的:(JAVA学习)