4

我在 Ubuntu 下使用 Java 和 Netbeans。我正在使用 JNI 并希望在 linux 中加载具有“.so”扩展名的 dll。为什么这段代码有效:

static {
    System.load("/home/user/NetBeansProjects/JD2XX-DLL2/dist/jd2xx.so");
}

但这不是:

static {
    System.loadLibrary("jd2xx");
}

使用 netbeans 中指定的 VM 选项:

-Djava.library.path="/home/user/NetBeansProjects/JD2XX-DLL2/dist/"

我收到一个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 
  no jd2xx.so in java.library.path

这适用于我在 Windows 下。

4

1 回答 1

8

在 Unix 系统上,

System.loadLibrary("Foo");

libFoo.so查找在库搜索路径中调用的文件。

相应地重命名文件。

相比之下,在 Windows 系统上,该调用将查找Foo.dll在库搜索路径中调用的文件。

于 2012-04-30T15:56:24.547 回答