我创建了一个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应用程序中出现了令人讨厌的不满意链接错误。
答案 0 :(得分:1)
不清楚options[1].optionString = "-Djava.library.path=C:\\Libs";
的含义。您应该将java.library.path作为java arg
java -Djava.library.path=C:\Libs MainClass
答案 1 :(得分:0)
首先调用getEnv并检查“java.library.path”是否实际引用了您的库。 其他 您可以尝试使用
提供文件的绝对路径static
{
System.load("C:\\Libs");
}