0

我有一个程序正在用 JAVA 读取 Pcap 文件。我已将 jnetpcap jar 包含在其中。除了 jar 文件,我还将 .dll 文件放在 windows 的 System32 文件夹中。我可以在 Windows 机器上运行这个程序。

现在我尝试在 Linux 机器上运行相同的程序但是给了我这个错误:

线程“主线程”中的异常 java.lang.UnsatisfiedLinkError: com/slytechs/library/NativeLibrary.dlopen(Ljava/lang/String;)J at com.slytechs.library.NativeLibrary.(Unknown Source) 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) at org.jnetpcap.nio.JMemory.(Unknown Source) at com.ma.pcapreader.LatencyCalculator.(LatencyCalculator.java:36) 找不到主类:com .ma.pcapreader.LatencyCalculator。程序将会退出。

我还将 .so 文件包含在 /usr/lib 和 /usr/share/lib 文件夹中。我仍然遇到同样的错误。请帮助我摆脱这个问题。

4

1 回答 1

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

于 2019-03-26T22:15:11.143 回答