Excepción en el hilo "principal" java.lang.UnsatisfiedLinkError: No se puede cargar la biblioteca 'virt'

Recientemente, al desarrollar un programa en la plataforma de Windows para restaurar la máquina virtual Linux a través de la API Java libvirt, se informó un error:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'virt': Native library (win32-x86-64/virt-0.dll) not found in resource path
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:271)
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
    at com.sun.jna.Library$Handler.<init>(Library.java:147)
    at com.sun.jna.Native.loadLibrary(Native.java:412)
    at com.sun.jna.Native.loadLibrary(Native.java:391)
    at org.libvirt.jna.Libvirt.<clinit>(Unknown Source)
    at org.libvirt.Library.<clinit>(Unknown Source)
    at org.libvirt.Connect.<init>(Unknown Source)
    at org.libvirt.Connect.<init>(Unknown Source)

El motivo es que el programa necesita cargar la biblioteca virt cuando se ejecuta, es decir, el archivo virt.dll Para depurar la API libvirt en la plataforma de Windows, debe instalar el paquete de instalación proporcionado por libvirt, que contiene la biblioteca virt El enlace de descarga se coloca a continuación.

Una vez completada la instalación, debe configurar las variables de entorno de la siguiente manera:

Método 1: Configurar variables de entorno globales

Método 2: especificar dinámicamente en el programa Java

System.setProperty("jna.library.path","D:\\program\\Libvirt\\bin");

A continuación, debemos modificar el nombre de la biblioteca virt.Cuando se carga el programa, busca la biblioteca virt por el nombre virt o virt-0, pero después de que libvirt se instala correctamente, el nombre predeterminado de virt es libvirt-0 .dll, por lo que debemos modificarlo desde virt.dll o virt-0.dll, tenga en cuenta aquí que de acuerdo con la versión del paquete jar libvirt, el nombre del archivo .dll es diferente.Después de la prueba, la versión 0.4 .6 se llama virt.dll, y la versión 0.5.2 se llama virt-0.dll.

Después de modificar el nombre de la biblioteca, descubrí que aún no se encontraba la biblioteca virt, y luego intenté cambiar el jdk a 32 bits, y tuvo éxito ~

Paquete de instalación de libvirt Enlace a la nube de Baidu

Enlace: https://pan.baidu.com/s/1gq2aYRc5qS4Au_Pb_O5lBw

Código de extracción: cmqk

Jdk8 enlace de nube Baidu de 32 bits

Enlace: https://pan.baidu.com/s/1W74VixG-QLSd_terPXYBaQ

Código de extracción: g7o6

Supongo que te gusta

Origin blog.csdn.net/weixin_46205984/article/details/128559695
Recomendado
Clasificación