Ahs*_*jaz 19 java macos amazon-dynamodb-local apple-m1
我使用https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html进行了 dynamodb 的本地设置
我可以使用以下命令启动实例java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb,但是当我尝试执行其他操作时,它会出现以下错误。
2021 年 3 月 15 日下午 2:10:28 com.almworks.sqlite4java.Internal 日志警告:[sqlite] 无法打开 DB[15]:com.almworks.sqlite4java.SQLiteException:[-91] 无法加载库:java.lang。 UnsatisfiedLinkError:/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:dlopen(/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib,1):找不到合适的图像。确实找到:/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构2021 年 15 月 2:10:28 PM com.almworks.sqlite4java.Internal 日志严重:[sqlite] SQLiteQueue[shared-local-instance.db]:运行作业队列时出错 com.almworks.sqlite4java.SQLiteException:[-91] 不能加载库:java.lang.UnsatisfiedLinkError:/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:dlopen(/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib,1):没有合适的找到图像。确实找到:/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构 /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:97) 在 com.almworks.sqlite4java.SQLiteConnection.open0(SQLiteConnection.java:1441) 在 com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:282)在 com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:293) 在 com.almworks.sqlite4java.SQLiteQueue.openConnection(SQLiteQueue.java:464) 在 com.almworks.sqlite4java.SQLiteQueue.queueFunction(SQLiteQueue.java:641) )在 com.almworks.sqlite4java.SQLiteQueue.runQueue(SQLiteQueue.java:623) 在 com.almworks.sqlite4java.SQLiteQueue.access$000(SQLiteQueue.java:77) 在 com.almworks.sqlite4java.SQLiteQueue$1.run(SQLiteQueue. java:205) 在 java.base/java.lang.Thread.run(未知来源) 引起: java.lang.UnsatisfiedLinkError: /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: dlopen(/Users /ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib, 1):找不到合适的图像。确实找到:/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构 /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装器中没有匹配的架构java.base/java.lang.ClassLoader$NativeLibrary.load0(本机方法) 在 java.base/java.lang.ClassLoader$NativeLibrary.load(未知来源) 在 java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(来源未知)位于 java.base/java.lang.ClassLoader。
此问题与新的 M1 Apple Silicon 架构有关吗?有什么解决方法吗?
vey*_*kin 14
您可以使用新发布的 Apple Silicon (M1) 库。将此文件作为依赖项添加到您的项目中,或者如果您使用基于文件夹的方法,则将此文件复制到本机库路径中应该可以修复错误:
io.github.ganadist.sqlite4java:libsqlite4java-osx-aarch64:1.0.392
Run Code Online (Sandbox Code Playgroud)
您可以使用sqlite4java.library.path系统属性指定自定义本机库路径:
# JVM parameter:
-Dsqlite4java.library.path=./native-libs
# or within source code:
System.setProperty("sqlite4java.library.path", "./native-libs")
Run Code Online (Sandbox Code Playgroud)
小智 9
我能够运行 DynamoDB,安装 java 版本 x86-64 架构而不是 arm64,并从 Rosetta 终端启动它
java --version
openjdk 16.0.1 2021-04-20
OpenJDK Runtime Environment Zulu16.30+15-CA (build 16.0.1+9)
OpenJDK 64-Bit Server VM Zulu16.30+15-CA (build 16.0.1+9, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
小智 3
我通过brew安装的dynamodb-local也遇到了同样的问题。显然,正在使用的 sqlite4java lib 中没有 Arm 版本。例如我得到:
Caused by: java.lang.UnsatisfiedLinkError: /opt/homebrew/Caskroom/dynamodb-local/latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: dlopen(/opt/homebrew/Caskroom/dynamodb-local/latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib, 1): no suitable image found. Did find:
/opt/homebrew/Caskroom/dynamodb-local/latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: no matching architecture in universal wrapper
Run Code Online (Sandbox Code Playgroud)
有趣的是,使用docker 预览版本, docker 镜像对我来说工作得很好,例如,通过使用在您的计算机上本地部署 DynamoDB(在 Docker 选项卡上)中的 docker compose 文件。
| 归档时间: |
|
| 查看次数: |
12415 次 |
| 最近记录: |