我在我的简单java应用程序中使用Netutil类来显示所有网络接口,程序代码如下,之后是异常结果。我是绝对的初学者,你的帮助对我来说是节省大量时间:)
package packet_experience;
import edu.huji.cs.netutils.NetUtilsException;
import edu.huji.cs.netutils.capture.*;
import java.io.IOException;
/**
*
* @author Pete
*/
public class Packet_Experience {
/**
* @param args the command line arguments
* @throws edu.huji.cs.netutils.NetUtilsException
* @throws java.io.IOException
*/
public static void main(String[] args) throws NetUtilsException, IOException {
JPCapInterface intArr[] = JPCap.getAllIntefacesNames();
for (JPCapInterface next : intArr)
{
System.out.println(next.toString());
}
}
运行:
Exception in thread "main" java.lang.UnsatisfiedLinkError: edu.huji.cs.netutils.capture.impl.JPCapWraper.get_all_devices(Z)Ljava/lang/String;
at edu.huji.cs.netutils.capture.impl.JPCapWraper.get_all_devices(Native Method)
at edu.huji.cs.netutils.capture.impl.JPCapWraper.getAllInterfaces(JPCapWraper.java:299)
at edu.huji.cs.netutils.capture.JPCap.getAllIntefacesNames(JPCap.java:346)
at packet_experience.Packet_Experience.main(Packet_Experience.java:29)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
更新(解决方案!):
我的CPU是CORE i5并且拥有Win 7 Home Pre 64bit。 我尝试了JVM 32和64bit并更改了 System_PATH 和 java.library.path ,并将所有jar,dll,lib,...文件复制到那里。我也跟着并执行了我在这个页面上收到的建议,我在任何其他地方阅读(据我所知:))。
最后我遇到了 jnetpcap ,它具有相似的性能,我推荐它作为完美适合我。您可以在jnetpcap Homepage找到它。请注意,与 Netutils 相同,您应调整 System_PATH 和 java.library.path ,并确保使用 JVM 32位,否则你肯定会收到UnsatisfiedLinkError
。
玩得开心!
答案 0 :(得分:0)
错误看起来与"你需要一个dll / so"。
试试看这里: NetUtils java library - how to make it work?
您可以在计算机上找到.dll,只需搜索您的Windows目录。