我有一个正在JAVA中读取Pcap文件的程序。我已经将jnetpcap jar包含在其中。随着jar文件,我也把.dll文件放在Windows的System32文件夹中。我可以在Windows机器上运行这个程序。
现在我尝试在Linux机器上运行相同的程序但是给了我这个错误:
线程中的异常"主线程" java.lang.UnsatisfiedLinkError:com / slytechs / library / NativeLibrary.dlopen(Ljava / lang / String;)J 在com.slytechs.library.NativeLibrary。(未知来源) at com.slytechs.library.JNILibrary。(Unknown Source) at com.slytechs.library.JNILibrary.loadLibrary(Unknown Source) at com.slytechs.library.JNILibrary.register(Unknown Source) at com.slytechs.library.JNILibrary.register(Unknown Source) at com.slytechs.library.JNILibrary.register(Unknown Source) 在org.jnetpcap.nio.JMemory。(未知来源) 在com.ma.pcapreader.LatencyCalculator。(LatencyCalculator.java:36) 找不到主类:com.ma.pcapreader.LatencyCalculator。程序将退出。
我还将.so文件包含在/ usr / lib和/ usr / share / lib文件夹中。我仍然得到同样的错误。请帮我解决这个问题。
答案 0 :(得分:0)
JNetPcap假定已安装libpcap并将其命名为:“ libpcap.so”如果它是其他版本(例如libpcap.so.1),则链接将失败。这是我所做的:
[root @ test bin]#ln -s /usr/lib64/libpcap.so.1 /usr/lib64/libpcap.so
[root @ test bin]#ln -s /app_path/libjnetpcap.so /usr/lib64/libjnetpcap.so
[root @ test bin]#ln -s /app_path/libjnetpcap-pcap100.so /usr/lib64/libjnetpcap-pcap100.so