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)

相关推荐
2601_9622935312 小时前
人工智能 & 神经网络完整入门路线(零基础可走,分阶段)
人工智能·python·深度学习·神经网络·机器学习
Wang's Blog13 小时前
Java框架快速入门: Spring Security+OAuth2之邮件验证码发送(SMTP与API方式)
java·数据库·spring
“AI国潮设计-小江”13 小时前
【Python/SDXL实战】潮汕国潮IP视觉落地:普宁英歌舞猫IP & 创意甜品设计(附ComfyUI工作流与商业授权说明)
开发语言·人工智能·python·prompt·aigc
529宝宝起名网13 小时前
用 Python 分析汉字字源与起名用字的关联规律:从六书结构到文化寓意的起名偏好洞察
开发语言·python
一只旭宝13 小时前
Python 与 C/C++ 内存模型对比总结
c语言·c++·python
砚底藏山河14 小时前
容错重试与指数退避:网络抖动手抖不再丢数据(魔码量化实战 #04)
java·数据库·python·金融
今儿敲了吗14 小时前
02词云生成器
笔记·python
李高钢14 小时前
Python Tornado 框架入门:从零搭建你的第一个异步 Web 应用
前端·python·tornado
2501_9304724414 小时前
云安全自查清单:用腾讯云助手 30 分钟完成一次权限与密钥体检
java·腾讯云
letisgo514 小时前
JAVA 高级进阶05篇《Spring容器机制:Bean生命周期与三级缓存全解》
java·spring·面试·ioc·源码分析