无法在Linux

时间:2016-03-24 18:43:57

标签: java linux dll jnetpcap

我有一个正在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文件夹中。我仍然得到同样的错误。请帮我解决这个问题。

1 个答案:

答案 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