Java M1 apple silicon mac上的Dynamodb本地设置
我使用 我可以使用以下命令启动该实例Java M1 apple silicon mac上的Dynamodb本地设置,java,macos,apple-m1,amazon-dynamodb-local,Java,Macos,Apple M1,Amazon Dynamodb Local,我使用 我可以使用以下命令启动该实例java-Djava.library.path=./DynamoDBLocal\u lib-jar DynamoDBLocal.jar-sharedDb,但当我尝试执行任何其他操作时,它会出现以下错误 2021年3月15日下午2:10:28 com.almworks.sqlite4java.Internal log 警告:[sqlite]无法打开DB[15]:com.almworks.sqlite4java.SQLiteException:[-91]无法加载库
java-Djava.library.path=./DynamoDBLocal\u lib-jar DynamoDBLocal.jar-sharedDb
,但当我尝试执行任何其他操作时,它会出现以下错误
2021年3月15日下午2:10:28 com.almworks.sqlite4java.Internal log
警告:[sqlite]无法打开DB[15]:com.almworks.sqlite4java.SQLiteException:[-91]无法加载库:java.lang.unsatifiedlinkerror:/Users/ahsanejaz/Downloads/dynamodb\u local\u latest/DynamoDBLocal\u lib/libsqlite4java-osx.dylib:dlopen(/Users/ahsanejaz/Downloads/dynamodb\u local\u latest/DynamoDBLocal\u lib/lib-lib,1):未找到合适的图像。确实发现:
/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装中没有匹配的体系结构
/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib:通用包装中没有匹配的体系结构
2021年3月15日下午2:10:28 com.almworks.sqlite4java.Internal log
严重:[sqlite]SQLiteQueue[共享本地实例.db]:运行作业队列时出错
com.almworks.sqlite4java.SQLiteException:[-91]无法加载库:java.lang.unsatifiedlinkerror:/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.unsatifiedlinkerror:/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$NativelLibrary.load(未知源)
位于java.base/java.lang.ClassLoader$NativelLibrary.loadLibrary(未知源)
位于java.base/java.lang.ClassLoader.loadLibrary0(未知源)
位于java.base/java.lang.ClassLoader.loadLibrary(未知源)
位于java.base/java.lang.Runtime.load0(未知源)
位于java.base/java.lang.System.load(未知源)
位于com.almworks.sqlite4java.Internal.tryLoadFromPath(Internal.java:340)
在com.almworks.sqlite4java.Internal.loadLibraryX(Internal.java:117)上
位于com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:95)
... 9更多
2021年3月15日下午2:10:28 com.almworks.sqlite4java.Internal log
警告:[sqlite]SQLiteQueue[shared local instance.db]:异常停止,转世
在3000毫秒内
这个问题与新的M1苹果硅架构有关吗?有解决方法吗?我对通过brew安装的dynamodb local也有同样的问题。显然,正在使用的sqlite4java库中没有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
有趣的是,docker映像在我使用时运行良好,例如使用docker compose文件from(在docker选项卡上)。我能够运行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)
谢谢,docker的形象也对我有用。