使用Libvirt API进行虚拟机管理(Java版)

使用Libvirt API进行虚拟机管理(Java版)

1.由于使用java程序设计语言做开发,因此需要配置JDK环境,IDE工具可以使用Eclipse。可以使用“apt-get install eclipse”命令安装eclipse,会自动配置JDK环境(或者自行下载压缩包,解压后配置环境)。
使用Libvirt API进行虚拟机管理(Java版)_第1张图片
2.安装完毕后,搜索出现eclipse的图标,点击进入
使用Libvirt API进行虚拟机管理(Java版)_第2张图片
3.在eclipse中配置工作目录
使用Libvirt API进行虚拟机管理(Java版)_第3张图片
4.创建java项目
使用Libvirt API进行虚拟机管理(Java版)_第4张图片
使用Libvirt API进行虚拟机管理(Java版)_第5张图片
使用Libvirt API进行虚拟机管理(Java版)_第6张图片
5.创建java类
使用Libvirt API进行虚拟机管理(Java版)_第7张图片
6.将jar包拷贝至宿主机“/home/jar”目录,在eclipse中配置需要的jar包。
使用Libvirt API进行虚拟机管理(Java版)_第8张图片
使用Libvirt API进行虚拟机管理(Java版)_第9张图片
使用Libvirt API进行虚拟机管理(Java版)_第10张图片
7.编写java代码

package nyist.edu.cn;

import java.io.File;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import org.libvirt.Connect;
import org.libvirt.Domain;
import org.libvirt.LibvirtException;

public class JavaLibvirt {
    private Connect conn;
    
    public Domain init() throws LibvirtException, DocumentException {
        conn = new Connect("qemu:///system", false);
        SAXReader reader = new SAXReader();
        Document docu = reader.read(new File("/etc/libvirt/qemu/demo.xml"));
        String xmlDesc = docu.asXML();
        Domain domain = conn.domainDefineXML(xmlDesc);
        return domain;
    }
    
    public static void main(String args[]) throws DocumentException {

        try {
            JavaLibvirt javaLibvirt = new JavaLibvirt();
            Domain domain=javaLibvirt.init();
            for (int id : javaLibvirt.conn.listDomains()) {
                domain = javaLibvirt.conn.domainLookupByID(id);
                System.out.println("before: id is " + domain.getID() + "   name is " + domain.getName()+"   state is "+domain.getInfo().state);
                System.out.println();
            }            
            domain.create();
            //domain.suspend();
            //domain.resume();
            //domain.destroy(); 
            
            for (int id : javaLibvirt.conn.listDomains()) {
                domain = javaLibvirt.conn.domainLookupByID(id);
                System.out.println("after: id is " + domain.getID() + "   name is " + domain.getName()+"   state is "+domain.getInfo().state);
                System.out.println();
            }
        } catch (LibvirtException e) {
            e.printStackTrace();
        }
    }
}

8.运行之前,打开virsh使用命令“virsh list --all”或者virt-manager查看虚拟机状态。
使用Libvirt API进行虚拟机管理(Java版)_第11张图片
使用Libvirt API进行虚拟机管理(Java版)_第12张图片
9.运行java程序,domain.create()函数用于开启虚拟机,开启后在控制台能看到虚拟机为“RUNNING”。

使用Libvirt API进行虚拟机管理(Java版)_第13张图片
10.执行代码后再打开virsh使用命令“virsh list --all”或者virt-manager查看虚拟机状态。
使用Libvirt API进行虚拟机管理(Java版)_第14张图片
使用Libvirt API进行虚拟机管理(Java版)_第15张图片
11.修改代码为domain.suspend()函数,查看控制台虚拟机状态从“RUNNING”变为“PAUSED”。
使用Libvirt API进行虚拟机管理(Java版)_第16张图片
12.执行代码后再打开virsh使用命令“virsh list --all”或者virt-manager查看虚拟机状态。
使用Libvirt API进行虚拟机管理(Java版)_第17张图片
使用Libvirt API进行虚拟机管理(Java版)_第18张图片

你可能感兴趣的:(KVM)