【问题标题】:Java client with libvirt on WindowsWindows 上带有 libvirt 的 Java 客户端
【发布时间】:2011-12-24 00:12:17
【问题描述】:

我正在编写一个基于 Java 的客户端,该客户端将从使用 libvirt 的 Windows 中执行。

  1. 获得 libvirt-java (http://libvirt.org/sources/java/libvirt-java-0.4.7.ta​​r.gz) 并构建一个 jar(无参数的 Ant)
  2. 然后根据http://libvirt.org/windows.html,使用“MSYS build script”构建了一个dll
  3. 得到 2 个文件 libvirt-0.dll 和 libqemu-0.dll

当我从 http://libvirt.org/java.html 运行示例示例(在 Eclipse 中)时,我收到以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'virt': %1 is not a valid Win32 application.

      at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:169)
      at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:242)
      at com.sun.jna.Library$Handler.<init>(Library.java:140)
      at com.sun.jna.Native.loadLibrary(Native.java:368)
      at com.sun.jna.Native.loadLibrary(Native.java:353)
      at org.libvirt.jna.Libvirt.<clinit>(Unknown Source)
      at org.libvirt.Connect.<clinit>(Unknown Source)
      at Main.main(Main.java:26)

还尝试在 Fedora 中代替步骤 2 交叉编译 - 当我使用新的 dll 时出现相同的错误消息。

有人知道如何解决这个问题吗?

【问题讨论】:

  • 看起来库的 java 部分在定位 dll 时遇到问题。检查库期望 dll 的位置。 dll需要在windows上注册吗?
  • 您在哪里可以解决此问题?我也面临同样的问题。

标签: java windows libvirt


【解决方案1】:

您需要将jna.library.path系统属性值设置为dll所在的路径。

【讨论】:

    【解决方案2】:

    我不知道你是否已经解决了这个问题,但如果你还没有,你需要复制 libvirt-0.dll 并将其重命名为 libvirt.dll 以便 jna 可以加载它,并将 jna.library.path 设置为包含此 dll 的目录。 另外,我假设这是 32 位的,所以你还需要在 32b 上使用 Java 来编译和执行它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 2017-03-25
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多