0

我创建了一个 Java 应用程序,它从静态初始化块加载一个 Windows DLL。代码片段如下:

// MyTestJava class starts
class MyTestJava
{

static
    {
        System.loadLibrary("MyLib");
    }
} // MyTestJava class def ends here

我听说对于从静态块执行的各种库初始化,JVM 应该在 java.library.path. 所以我为JVM设置库路径如下并放在文件夹MyLib.dll下。c:\Libs

options[1].optionString = "-Djava.library.path=C:\\Libs"; 

不幸的是,我在我的 Java 应用程序中遇到了一个讨厌的 Unsatisfied Link 错误。

4

2 回答 2

1

不清楚是什么options[1].optionString = "-Djava.library.path=C:\\Libs";意思。您应该将 java.library.path 作为 java arg 传递

java -Djava.library.path=C:\Libs MainClass
于 2013-05-24T07:01:50.420 回答
0

首先调用 getEnv 并检查“java.library.path”是否实际上是指您的库。否则您可以尝试使用提供文件的绝对路径

static
{
System.load("C:\\Libs");
}
于 2013-05-24T06:12:58.123 回答