java中的Netutils - 发生异常

时间:2015-01-23 19:43:12

标签: java exception

我在我的简单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

玩得开心!

1 个答案:

答案 0 :(得分:0)

错误看起来与"你需要一个dll / so"。

试试看这里: NetUtils java library - how to make it work?

您可以在计算机上找到.dll,只需搜索您的Windows目录。