JNI library missing



我正试图从libguestfs库运行一个测试文件InspectVM,以便访问windows中的磁盘映像。然而,我的控制台上有以下错误

run:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no guestfs_jni in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at madjava.com.redhat.et.libguestfs.GuestFS.<clinit>(GuestFS.java:51)
at madjava.examples.InspectVM.main(InspectVM.java:30)
C:UsersCyberSOFONETAppDataLocalNetBeansCache8.2executor-snippetsrun.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)#

我搜索了整个互联网,发现我应该将java.library.path设置为指向guestfs_jni的位置。我的主要问题是,我没有任何名称为guestfs_jni的文件。我需要自己做一个吗?或者我能在哪里找到它吗。任何形式的帮助都会得到通知。我是JNI的新手,所以我对没有太多信息

您正在查找一个名为guestfs_jni.dll的文件。通常,本机库附带jar文件。

发件人http://libguestfs.org/guestfs-java.3.html:

Libguestfs for Java是一个Java本机接口(JNI(扩展,由三部分提供:Libguestfs.jar、Libguestfs-VERSION.jar、Libguestfs_JNI.so、libguests.so

因此发行版附带了适用于Linux而非Windows的libguest_jni.so。IIRC,没有适用于Windows的libguestfs。因此,您首先必须了解是否可以使用Cygwin编译libguestfs,如果可以,请自行构建。

如果您在Windows10上,您可以尝试为Linux子系统安装libguestfs和Java运行时,并在子系统中运行。

最新更新