首页 文章

使用Libvirt Java API Build 与QEMU的连接

提问于
浏览
2

我在使用Libvirt API连接到QEMU时遇到问题,这里是代码:

import org.libvirt.Connect;
import org.libvirt.ConnectAuth;
import org.libvirt.ConnectAuthDefault;
import org.libvirt.LibvirtException;
import org.libvirt.NodeInfo;

public class Main 
{
  public static void main(String[] args)
  {
    System.setProperty("jna.library.path", "/home/johann/workspace/LibvirtTest/lib");
    try {
      ConnectAuth ca = new ConnectAuthDefault();
      Connect conn = new Connect("qemu+tcp://192.168.122.0/24", ca, 0);
      NodeInfo ni = conn.nodeInfo();

      System.out.println("model: " + ni.model + " mem(kb):" + ni.memory);

    } catch(LibvirtException le) {
       le.printStackTrace();
    }
  }
}

问题在于线路

Connect conn = new Connect("qemu+tcp://192.168.122.0/24", ca, 0);

它使编译器抛出此异常

Exception in thread "main" java.lang.UnsatisfiedLinkError:       com.sun.jna.Native.pointerSize()I
at com.sun.jna.Native.pointerSize(Native Method)
at com.sun.jna.Native.<clinit>(Native.java:88)
at org.libvirt.jna.Libvirt.<clinit>(Unknown Source)
at org.libvirt.Connect.<clinit>(Unknown Source)
at Main.main(Main.java:16)

我在Virtual Machine Manager localhost QEMU详细信息中找到了这个地址和端口,但它似乎不起作用...

提前致谢! :)

1 回答

  • 1

    看来地址不好 .

    “qemu type:// loginname @ ip:port / system”是对的 .

    在你的情况下似乎192.168.122.0/24是一个IP和子网掩码,因为/ 24等于子网掩码255.255.255.0并且不属于这里...如果它是一个端口你必须写:24 . 还/系统缺失

    qemu tcp://192.168.122.0:24 / system应该做的工作 - 如果没有尝试两件事:

    第一个摆脱:24并测试

    2如上所示添加用户名并进行测试

    假设其余代码正确,则可以使用其中一种可能性 . 玩得开心!

相关问题