![Packet Tracer 桥接 jar 文件](https://linux22.com/image/894024/Packet%20Tracer%20%E6%A1%A5%E6%8E%A5%20jar%20%E6%96%87%E4%BB%B6.png)
root@prateek-desktop:/root/ptbridge-master# java -jar ptbridge.jar
OpenJDK Server VM warning: You have loaded library /tmp/packetsocket5426320610063427559 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/packetsocket5426320610063427559: /tmp/packetsocket5426320610063427559: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1968)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1893)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)
at java.lang.Runtime.load0(Runtime.java:795)
at java.lang.System.load(System.java:1062)
at at.stefl.packetsocket.NativeLibraryLoader.load(NativeLibraryLoader.java:41)
at at.stefl.packetsocket.EthernetSocket.<clinit>(EthernetSocket.java:78)
at at.stefl.ptbridge.main.Main.main(Main.java:49)
有人可以帮忙解决这些异常吗?
答案1
核心问题是预期库不匹配。ELFCLASS64 文件是为 64 位库设计的,而不是 32 位库。
正如您在评论中所述,您使用的是 32 位 Ubuntu;这意味着您有 32 位库,无法执行 64 位程序。如果您的架构支持 64 位 Ubuntu,则需要安装并运行 64 位 Ubuntu,这样您才能拥有运行 Packet Tracer Bridge 所需的正确版本的库。
如果您的系统不支持 64 位操作系统,那么您要么需要查看 Packet Tracer Bridge 是否有 32 位版本,要么必须将您的计算机替换为支持 64 位操作系统的计算机,或者您将不得不不使用 Packet Tracer Bridge。