Mac (m1) Java 加载本地C共享库函数 .dylib 函数 Unable to load library ‘liblicense‘

错误信息

java 复制代码
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'liblicense':

  

dlopen(libliblicense.dylib, 0x0009): tried: 'libliblicense.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibliblicense.dylib' (no such file), '/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/bin/./libliblicense.dylib' (no such file), '/usr/lib/libliblicense.dylib' (no such file, not in dyld cache), 'libliblicense.dylib' (no such file), '/usr/lib/libliblicense.dylib' (no such file, not in dyld cache)

  

dlopen(libliblicense.dylib, 0x0009): tried: 'libliblicense.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibliblicense.dylib' (no such file), '/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/bin/./libliblicense.dylib' (no such file), '/usr/lib/libliblicense.dylib' (no such file, not in dyld cache), 'libliblicense.dylib' (no such file), '/usr/lib/libliblicense.dylib' (no such file, not in dyld cache)

  

dlopen(/Users/mi/Library/Frameworks/liblicense.framework/liblicense, 0x0009): tried: '/Users/mi/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/mi/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/Users/mi/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Library/Frameworks/liblicense.framework/liblicense' (no such file, not in dyld cache)

  

dlopen(/Library/Frameworks/liblicense.framework/liblicense, 0x0009): tried: '/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Library/Frameworks/liblicense.framework/liblicense' (no such file, not in dyld cache)

  

dlopen(/System/Library/Frameworks/liblicense.framework/liblicense, 0x0009): tried: '/System/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/System/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Library/Frameworks/liblicense.framework/liblicense' (no such file, not in dyld cache)

  

Native library (darwin-aarch64/libliblicense.dylib) not found in resource path ([file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/charsets.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/crs-agent.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/cldrdata.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/dnsns.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/jaccess.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/jfxrt.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/legacy8ujsse.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/localedata.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/nashorn.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/openjsse.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/sunec.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/zipfs.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/jce.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/jfr.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/jsse.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/management-agent.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/resources.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/rt.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/lib/dt.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/lib/jconsole.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/lib/tools.jar, file:/Users/mx/IdeaProjects/src/test-parent/testSecurity/target/test-classes/, file:/Users/mx/IdeaProjects/src/test-parent/testSecurity/target/classes/, file:/Users/mi/development/maven/repository/org/bouncycastle/bcprov-jdk15to18/1.69/bcprov-jdk15to18-1.69.jar, file:/Users/mi/development/maven/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar, file:/Users/mi/development/maven/repository/com/alibaba/fastjson/1.2.83/fastjson-1.2.83.jar, file:/Users/mi/development/maven/repository/net/java/dev/jna/jna/5.13.0/jna-5.13.0.jar, file:/Users/mi/development/maven/repository/net/java/dev/jna/jna-platform/5.13.0/jna-platform-5.13.0.jar, file:/Users/mi/development/maven/repository/cn/hutool/hutool-all/5.8.16/hutool-all-5.8.16.jar, file:/Users/mi/development/maven/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar, file:/Users/mi/development/maven/repository/com/googlecode/aviator/aviator/5.1.4/aviator-5.1.4.jar, file:/Users/mi/development/maven/repository/commons-beanutils/commons-beanutils/1.8.0/commons-beanutils-1.8.0.jar, file:/Users/mi/development/maven/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar, file:/Users/mi/development/maven/repository/org/projectlombok/lombok/1.18.24/lombok-1.18.24.jar, file:/Users/mi/development/maven/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar, file:/Users/mi/development/maven/repository/org/hibernate/validator/hibernate-validator/6.2.2.Final/hibernate-validator-6.2.2.Final.jar, file:/Users/mi/development/maven/repository/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar, file:/Users/mi/development/maven/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar, file:/Users/mi/development/maven/repository/com/fasterxml/classmate/1.4.0/classmate-1.4.0.jar, file:/Users/mi/development/maven/repository/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.jar, file:/Users/mi/development/maven/repository/org/slf4j/log4j-over-slf4j/1.7.25/log4j-over-slf4j-1.7.25.jar, file:/Users/mi/development/maven/repository/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.jar, file:/Users/mi/development/maven/repository/org/apache/logging/log4j/log4j-to-slf4j/2.17.1/log4j-to-slf4j-2.17.1.jar, file:/Users/mi/development/maven/repository/org/junit/jupiter/junit-jupiter-engine/5.9.0/junit-jupiter-engine-5.9.0.jar, file:/Users/mi/development/maven/repository/org/junit/platform/junit-platform-engine/1.9.0/junit-platform-engine-1.9.0.jar, file:/Users/mi/development/maven/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar, file:/Users/mi/development/maven/repository/org/junit/platform/junit-platform-commons/1.9.0/junit-platform-commons-1.9.0.jar, file:/Users/mi/development/maven/repository/org/junit/jupiter/junit-jupiter-api/5.9.0/junit-jupiter-api-5.9.0.jar, file:/Users/mi/development/maven/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar, file:/Users/mi/development/maven/repository/org/junit/jupiter/junit-jupiter-params/5.9.0/junit-jupiter-params-5.9.0.jar, file:/Users/mi/Applications/IntelliJ%20IDEA%20Ultimate.app/Contents/lib/idea_rt.jar])

  

at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:323)

  

at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:483)

  

at com.sun.jna.Library$Handler.<init>(Library.java:197)

  

at com.sun.jna.Native.load(Native.java:622)

  

at com.sun.jna.Native.load(Native.java:596)

  

at com.test.license.LicenseLibrary.<clinit>(LicenseLibrary.java:45)

  

at com.test.license.LicenseValidator.getMachineID(LicenseValidator.java:11)

  

at com.test.dcpdatasecurity.service.test.EncryptionAlgorithmsServiceTest.main(EncryptionAlgorithmsServiceTest.java:33)

  

Suppressed: java.lang.UnsatisfiedLinkError: dlopen(libliblicense.dylib, 0x0009): tried: 'libliblicense.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibliblicense.dylib' (no such file), '/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/bin/./libliblicense.dylib' (no such file), '/usr/lib/libliblicense.dylib' (no such file, not in dyld cache), 'libliblicense.dylib' (no such file), '/usr/lib/libliblicense.dylib' (no such file, not in dyld cache)

  

at com.sun.jna.Native.open(Native Method)

  

at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:211)

  

... 7 more

  

Suppressed: java.lang.UnsatisfiedLinkError: dlopen(libliblicense.dylib, 0x0009): tried: 'libliblicense.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibliblicense.dylib' (no such file), '/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/bin/./libliblicense.dylib' (no such file), '/usr/lib/libliblicense.dylib' (no such file, not in dyld cache), 'libliblicense.dylib' (no such file), '/usr/lib/libliblicense.dylib' (no such file, not in dyld cache)

  

at com.sun.jna.Native.open(Native Method)

  

at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:224)

  

... 7 more

  

Suppressed: java.lang.UnsatisfiedLinkError: dlopen(/Users/mi/Library/Frameworks/liblicense.framework/liblicense, 0x0009): tried: '/Users/mi/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/mi/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/Users/mi/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Library/Frameworks/liblicense.framework/liblicense' (no such file, not in dyld cache)

  

at com.sun.jna.Native.open(Native Method)

  

at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:268)

  

... 7 more

  

Suppressed: java.lang.UnsatisfiedLinkError: dlopen(/Library/Frameworks/liblicense.framework/liblicense, 0x0009): tried: '/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Library/Frameworks/liblicense.framework/liblicense' (no such file, not in dyld cache)

  

at com.sun.jna.Native.open(Native Method)

  

at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:268)

  

... 7 more

  

Suppressed: java.lang.UnsatisfiedLinkError: dlopen(/System/Library/Frameworks/liblicense.framework/liblicense, 0x0009): tried: '/System/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/System/Library/Frameworks/liblicense.framework/liblicense' (no such file), '/System/Library/Frameworks/liblicense.framework/liblicense' (no such file, not in dyld cache)

  

at com.sun.jna.Native.open(Native Method)

  

at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:268)

  

... 7 more

  

Suppressed: java.io.IOException: Native library (darwin-aarch64/libliblicense.dylib) not found in resource path ([file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/charsets.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/crs-agent.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/cldrdata.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/dnsns.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/jaccess.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/jfxrt.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/legacy8ujsse.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/localedata.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/nashorn.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/openjsse.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/sunec.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/ext/zipfs.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/jce.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/jfr.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/jsse.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/management-agent.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/resources.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/rt.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/lib/dt.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/lib/jconsole.jar, file:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/lib/tools.jar, file:/Users/mx/IdeaProjects/src/test-parent/testSecurity/target/test-classes/, file:/Users/mx/IdeaProjects/src/test-parent/testSecurity/target/classes/, file:/Users/mi/development/maven/repository/org/bouncycastle/bcprov-jdk15to18/1.69/bcprov-jdk15to18-1.69.jar, file:/Users/mi/development/maven/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar, file:/Users/mi/development/maven/repository/com/alibaba/fastjson/1.2.83/fastjson-1.2.83.jar, file:/Users/mi/development/maven/repository/net/java/dev/jna/jna/5.13.0/jna-5.13.0.jar, file:/Users/mi/development/maven/repository/net/java/dev/jna/jna-platform/5.13.0/jna-platform-5.13.0.jar, file:/Users/mi/development/maven/repository/cn/hutool/hutool-all/5.8.16/hutool-all-5.8.16.jar, file:/Users/mi/development/maven/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar, file:/Users/mi/development/maven/repository/com/googlecode/aviator/aviator/5.1.4/aviator-5.1.4.jar, file:/Users/mi/development/maven/repository/commons-beanutils/commons-beanutils/1.8.0/commons-beanutils-1.8.0.jar, file:/Users/mi/development/maven/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar, file:/Users/mi/development/maven/repository/org/projectlombok/lombok/1.18.24/lombok-1.18.24.jar, file:/Users/mi/development/maven/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar, file:/Users/mi/development/maven/repository/org/hibernate/validator/hibernate-validator/6.2.2.Final/hibernate-validator-6.2.2.Final.jar, file:/Users/mi/development/maven/repository/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar, file:/Users/mi/development/maven/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar, file:/Users/mi/development/maven/repository/com/fasterxml/classmate/1.4.0/classmate-1.4.0.jar, file:/Users/mi/development/maven/repository/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.jar, file:/Users/mi/development/maven/repository/org/slf4j/log4j-over-slf4j/1.7.25/log4j-over-slf4j-1.7.25.jar, file:/Users/mi/development/maven/repository/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.jar, file:/Users/mi/development/maven/repository/org/apache/logging/log4j/log4j-to-slf4j/2.17.1/log4j-to-slf4j-2.17.1.jar, file:/Users/mi/development/maven/repository/org/junit/jupiter/junit-jupiter-engine/5.9.0/junit-jupiter-engine-5.9.0.jar, file:/Users/mi/development/maven/repository/org/junit/platform/junit-platform-engine/1.9.0/junit-platform-engine-1.9.0.jar, file:/Users/mi/development/maven/repository/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar, file:/Users/mi/development/maven/repository/org/junit/platform/junit-platform-commons/1.9.0/junit-platform-commons-1.9.0.jar, file:/Users/mi/development/maven/repository/org/junit/jupiter/junit-jupiter-api/5.9.0/junit-jupiter-api-5.9.0.jar, file:/Users/mi/development/maven/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar, file:/Users/mi/development/maven/repository/org/junit/jupiter/junit-jupiter-params/5.9.0/junit-jupiter-params-5.9.0.jar, file:/Users/mi/Applications/IntelliJ%20IDEA%20Ultimate.app/Contents/lib/idea_rt.jar])

  

at com.sun.jna.Native.extractFromResourcePath(Native.java:1145)

  

at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:295)

  

... 7 more

原因

这个错误表明你的 Java 程序在运行时无法找到所需的本地库 liblicense.dylib

  1. 本地库未正确加载 - JNA 试图从 classpath 中寻找名为 darwin-aarch64/libliblicense.dylib 的原生库文件,但没有找到。

Native library (darwin-aarch64/libliblicense.dylib) not found in resource path

  1. 找不到对应文件

JNA 在加载本地库时,会自动加上(或去掉)系统平台默认的库前缀和后缀,我原本写的是 liblicense.dylib, 但是自动加上了 lib 前缀

解决方案

文件放对应目录

将 liblicense.dylib 库放到 resources 下的 darwin-aarch64 目录下

加载文件名需要去掉 lib 前缀

前缀lib 由操作系统自动加上

其它

✅ 🔥 代码举例

最常用的写法(推荐跨平台):

java 复制代码
LicenseLib lib = Native.load("license", LicenseLib.class);

✅ 自动找:

  • liblicense.dylib (macOS)

  • liblicense.so (Linux)

  • license.dll (Windows)

相关推荐
凤山老林2 分钟前
Spring Boot中的中介者模式:终结对象交互的“蜘蛛网”困境
java·spring boot·后端·设计模式·中介者模式
2025年一定要上岸26 分钟前
JavaSE-8-多态
java·开发语言
音程29 分钟前
(已解决) 如何使用密钥连接远程服务器jupyter notebook从而在本地浏览器上打开
运维·服务器·python·jupyter
我待_JAVA_如初恋1 小时前
理解:进程、线程、协程
java·jvm
Norvyn_71 小时前
LeetCode|Day11|557. 反转字符串中的单词 III|Python刷题笔记
笔记·python·leetcode
我爱一条柴ya1 小时前
【AI大模型】BERT微调文本分类任务实战
人工智能·pytorch·python·ai·分类·bert·ai编程
焦虑的二狗1 小时前
Mac下载mysql
数据库·mysql·macos
即将进化成人机1 小时前
Spring-----MVC配置和基本原理
java·spring·mvc
墨尘游子1 小时前
一文读懂循环神经网络(RNN)—语言模型+n元语法(1)
人工智能·python·rnn·深度学习·神经网络·语言模型
老神在在0011 小时前
SpringMVC2
java·前端·学习·spring·java-ee