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)

相关推荐
染翰12 小时前
Nacos 切换 Namespace 后配置不生效、占位符报错终极复盘
java·后端·spring·nacos
terry60012 小时前
2026图形验证码服务商横向测评|口碑、接入、安全选型全指南
java·大数据·人工智能·web安全·信息与通信·数据库架构
阿坤带你走近大数据12 小时前
java中泛型不能用基础数据类型
java·开发语言
skywalker_1113 小时前
SpringBoot速通(实战教学)
java·spring boot·redis·rpc·ssm·mybatis-plus
量化君也13 小时前
从回测到全自动实盘交易,全天候策略需要经历哪些改造?
大数据·人工智能·python·算法·金融
装不满的克莱因瓶13 小时前
自然语言处理发展历史——从规则系统到大语言模型的演进之路
网络·人工智能·python·深度学习·语言模型·自然语言处理
云絮.13 小时前
增删改查操作
java·开发语言
2601_9516457813 小时前
Linux 编程语言全解析:C、C++、Python、Go、Rust 谁更强?
linux·python·go·c·编程语言
themingyi13 小时前
Abaqus2024安装python包pandas
开发语言·python·pandas
阿坤带你走近大数据13 小时前
Linux中管道符的作用
java·linux·服务器