WEB开发网
开发学院软件开发Java Windows下Libvirt Java API使用教程(一)- 开发环境... 阅读

Windows下Libvirt Java API使用教程(一)- 开发环境部署

 2012-05-15 12:12:20 来源:WEB开发网   
核心提示:MSYS Build scriptThe easiest way is to use the msys_setup script, developed by Matthias Bolte. This is actively developed and kept current with libvirt releases

MSYS Build script

The easiest way is to use the msys_setup script, developed by Matthias Bolte. This is actively developed and kept current with libvirt releases:

https://github.com/photron/msys_setup 


不过笔者并没有尝试该种方式,因为libvirt官网也提供了windows下的安装包:


Experimental installation package

A windows installation package is in development. An experimental version is available here:

http://libvirt.org/sources/win32_experimental/Libvirt-0.8.8-0.exe

It is not production ready.(注:其并不是已经发布的产品)


该安装包中不仅包含了需要的dll文件,还提供了一个方便好用的virsh-shell 命令行工具,通过命令可以调用libvirt的所有接口(查看,管理虚拟机等。),对于我们的开发调试是非常有帮助的。

安装完成后,想让Java API找到dll文件,还需要指定jna路径,有两种方式,一种是直接设置系统环境变量:

另一种是可在程序中动态指定,笔者选择了后者,比较灵活简单,编写测试代码如下:

  1. public void testGetXenVMs() { 
  2.     try { 
  3.       System.setProperty("jna.library.path""D:/Git-Repo/git/libvirt-java/libvirt-java/src/test/java/kubi/coder/"); 
  4.       Connect conn = new Connect("xen+tcp://10.4.55.203/"); 
  5.       System.out.println(conn.nodeInfo().cores); 
  6.       for (String name : conn.listDefinedDomains()) { 
  7.         System.out.println(name); 
  8.         if (name != null) { 
  9.           Domain domain = conn.domainLookupByName(name); 
  10.           System.out.println(domain.getMaxMemory()); 
  11.           System.out.println(domain.getUUIDString()); 
  12.           System.out.println(domain.getInfo().maxMem); 
  13.           System.out.println(domain.getInfo().state); 
  14.           System.out.println(conn.listDomains().length); 
  15.         } 
  16.       } 
  17.     } catch (LibvirtException e) { 
  18.       e.printStackTrace(); 
  19.     } 
  20.   } 

是不是还是找不到dll报异常?

  1. Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'virt' 

原来他是搜索叫virt的dll文件。

查看源码:

  1. Libvirt INSTANCE = (Libvirt) Native.loadLibrary("virt", Libvirt.class); 

 

确实如此,将libvirt-0.dll改名为virt.dll。结果终于出来了。
 
:libvirt的Java API封装的比较直观,上手很容易,其入口就是Connect 这个连接类,获取连接后,即可对虚拟机环境进行查看和管理操作。笔者后续会奉上Java API详细使用介绍。

上一页  1 2 3 4 

Tags:Windows Libvirt Java

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接