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