【发布时间】:2016-03-24 18:43:57
【问题描述】:
我有一个程序正在 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.(未知来源) 在 com.slytechs.library.JNILibrary.(未知来源) 在 com.slytechs.library.JNILibrary.loadLibrary(未知来源) 在 com.slytechs.library.JNILibrary.register(未知来源) 在 com.slytechs.library.JNILibrary.register(未知来源) 在 com.slytechs.library.JNILibrary.register(未知来源) 在 org.jnetpcap.nio.JMemory.(未知来源) 在 com.ma.pcapreader.LatencyCalculator.(LatencyCalculator.java:36) 找不到主类:com.ma.pcapreader.LatencyCalculator。程序将退出。
我还将 .so 文件包含在 /usr/lib 和 /usr/share/lib 文件夹中。我仍然遇到同样的错误。请帮我解决这个问题。
【问题讨论】:
-
建议你检查这个jnetpcap.com/?q=node/39 ...同时检查为什么
Could not find the main class被抛出..你也可以尝试在程序参数中添加这个-Djava.library.path=<path to so/dll> -
我已经尝试过 -Djava.library.path=
但它不起作用。 -
您是否尝试过在没有任何 jnetpcap 代码的情况下运行程序.. 只是想知道它是否与 jvm/classpath 相关...
-
是的,我想要 Linux 的解决方案。因为我的程序已经在windows上运行了。
-
@PratibhaVerma-您找到解决此问题的方法了吗?我在 linux Ubuntu Netbeans 和 eclipse 上也面临同样的问题。