[英]Java JNI UnsatisfiedLinkError for static load
我需要将JNI dll链接到我的Java应用程序,这是代码:
static
{
System.load("c:\\boca\\java\\BocaWorld.dll");
}
这是错误
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\boca\java\BocaWorld.dll: Can't find dependent libraries
我可以解决将所有dll放入JRE / bin文件夹的问题,但是为什么第一种方法不起作用? 我不想将所有dll复制到JRE文件夹中。
您仅提供了单个本机库的路径,它的所有依赖项都在预定义的路径下搜索,而不是为具体库设置的路径。 您可以尝试为应用程序设置java.library.path
系统属性,指向包含本机库的文件夹。 此属性用于查找本机库。
您可以通过命令行参数进行设置,例如:
java -Djava.library.path=<path_to_libs> <main_class>
或通过System.setProperty
,如:
System.setProperty(“java.library.path”, “/path/to/library”);
此外,由于设置了此属性,因此您可以跳过lib的路径,以防JVM将在您设置的路径下搜索它,因此它可能类似于:
static
{
System.setProperty(“java.library.path”, “c:\\boca\\java\\”);
System.loadLibrary("BocaWorld.dll");
}
但是请不要忘记, java.library.path
已经可以包含一些路径,因此您可以使用;
添加新路径;
作为分隔符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.