栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll

为了

System.loadLibrary()
正常工作,该库(在Windows上为DLL)必须位于目录中PATH 或
java.library.path
系统属性中列出的路径上的某个目录中(这样你就可以启动Java了
java -Djava.library.path=/path/to/dir
)。

此外,对于

loadLibrary()
,你可以指定库的基本名称,但.dll结尾不能带。因此,
/path/to/something.dll
你只需使用
System.loadLibrary("something")

你还需要查看所获得的确切信息

UnsatisfiedlinkError
。如果显示类似以下内容:

Exception in thread "main" java.lang.UnsatisfiedlinkError: no foo in java.library.path

那么它将无法在你的或中找到foo库(

foo.dll
)。如果显示类似以下内容:
PATHjava.library.path

Exception in thread "main" java.lang.UnsatisfiedlinkError: com.example.program.ClassName.foo()V

则库本身有问题,因为Java无法将应用程序中的本机Java函数映射到其实际本机副本。

首先,我会在你的

System.loadLibrary()
呼叫周围记录一些日志,以查看该呼叫是否正常执行。如果它引发异常或不在实际执行的代码路径中,那么你将始终得到
UnsatisfiedlinkError
上面解释的后一种类型。

loadLibrary()
附带说明一下,大多数人使用本机方法将调用放入类中的静态初始化程序块中,以确保始终始终执行一次:

class Foo {    static {        System.loadLibrary('foo');    }    public Foo() {    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/382704.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号