JNI对ubuntu的链接错误不满意

时间:2012-04-30 15:54:40

标签: java java-native-interface

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

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。

1 个答案:

答案 0 :(得分:8)

在Unix系统上,

System.loadLibrary("Foo");

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

相应地重命名文件。

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