gpt4 book ai didi

java - JNI - 找不到 native 库

转载 作者:行者123 更新时间:2023-12-02 05:18:53 26 4
gpt4 key购买 nike

我有一个 C++ native 库的 JNI 包装器。当我尝试在 Java 代码中加载该库时,我看到以下异常:

java.lang.UnsatisfiedLinkError: no Foo in java.library.path

我像这样加载库:

System.loadLibrary("Foo");

我设置java.library.path如下:

java.library.path = /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/lib

我将 -XshowSettings:properties 添加到 JVM 选项,并确认 java.library.path 设置如上所示。

这是文件系统上的库 .so:

$ l /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/lib/libFoo.so 
-rwxr-xr-x 1 root wheel 448K 29 Oct 14:23 /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/lib/libFoo.so

环境信息:

java.version = 1.7.0_40
os.arch = x86_64
os.name = Mac OS X
os.version = 10.10

那么为什么我无法加载该库?

最佳答案

在 Mac OS X 上,JDK 不会搜索以 .so 结尾的文件的路径。 ,或 .dylib 以外的任何内容或.jnilib 。我们需要确保 native 库的文件名以 .dylib 结尾或.jnilib .

引用:https://developer.apple.com/library/mac/documentation/Java/Conceptual/Java14Development/05-CoreJavaAPIs/CoreJavaAPIs.html

关于java - JNI - 找不到 native 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26658072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com