DynamoDB Local: Failed to load native library sqlite4java
TL;DR — Die Storage-Engine von DynamoDB Local lädt beim Start eine native Bibliothek (sqlite4java), und die JVM findet sie entweder nicht oder kann sie nicht ausführen. Zwei klassische Ursachen: Du hast das Jar ohne -Djava.library.path=./DynamoDBLocal_lib gestartet, oder du bist auf einem Apple-Silicon-Mac und das mitgelieferte Binary ist für x86_64. Zeig der JVM den Native-Lib-Ordner, aktualisiere auf ein aktuelles DynamoDB Local, oder nimm das Multi-Arch-Docker-Image.
Was es bedeutet
Failed to load native library:'libsqlite4java-osx-1.0.392.dylib'. ...
java.lang.UnsatisfiedLinkError: no sqlite4java-osx-x86_64-1.0.392 in java.library.path
# Unable to start DynamoDB Local — native library load failureDynamoDB Local ist eine Java-Anwendung, deren On-Disk-Speicher von einer nativen (pro OS, pro Architektur) Bibliothek gestützt wird. UnsatisfiedLinkError ist die JVM, die sagt, dass sie diese Binary nicht linken konnte — entweder ist sie überhaupt nicht auf dem Library-Path, oder die Datei existiert, wurde aber für eine andere OS-/CPU-Architektur als deine JVM gebaut. Der Emulator kann ohne sie nicht starten.
Warum es passiert
- Fehlendes
-Djava.library.path— der Download liefert die Natives inDynamoDBLocal_lib/, und der dokumentierte Startbefehl muss die JVM dorthin richten.java -jar DynamoDBLocal.jarblank (oder aus einem anderen Arbeitsverzeichnis) auszuführen, verliert sie. - Apple Silicon (M-Serie) + ein x86_64-Native — ältere DynamoDB-Local-Builds und Wrapper bündeln nur Intel-
libsqlite4java-osx-Binaries; eine ARM64-JVM weigert sich, sie zu laden ("no matching architecture"). - Ein Wrapper, der eine alte Kopie festhält —
jest-dynamodb,serverless-dynamodb-localund ähnliche Tools laden ihr eigenes DynamoDB Local herunter; eine gecachte alte Version behält die veralteten Natives auch nach einem „Update“. - Natives in ein Temp-Verzeichnis entpackt, das aufgeräumt wurde — manche Setups entpacken in einen Temp-Ordner, den das OS leert, sodass es bis zum Neustart funktioniert.
So behebst du es
Starte es auf die dokumentierte Weise, aus dem entpackten Ordner:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDbAktualisiere DynamoDB Local — lade das aktuelle Release herunter; neuere Builds lösen die Apple-Silicon-Situation, die ältere plagte. Wenn ein Wrapper die Installation verwaltet, leere seinen Cache/installiere neu, sodass er die neue Version tatsächlich holt.
Oder umgehe Natives ganz mit Docker — das
amazon/dynamodb-local-Image ist der am wenigsten fragile Weg und läuft auf Apple Silicon:docker run -p 8000:8000 amazon/dynamodb-localAuf Apple Silicon mit einem alten Build, den du nicht ändern kannst: führe ein x86_64-JDK unter Rosetta 2 aus (die Intel-Natives passen dann zur JVM), oder ersetze
libsqlite4java-osx.dylibdurch den Community-veröffentlichten ARM64-Build von sqlite4java.In-Memory-Notausgang:
-inMemorybraucht die Bibliothek in aktuellen Builds trotzdem — es ist kein Workaround für ein fehlendes Native; behebe stattdessen Path/Arch.
Sobald der Emulator oben ist, richte deine Tools darauf aus — die DynoTable-Desktop-App verbindet sich mit DynamoDB Local unter http://localhost:8000, sodass du deine geseedeten Tabellen durchsuchen und inspizieren kannst, ohne ein Skript zu schreiben. Nutze den DynamoDB-JSON-Konverter, um Seed-Items im Wire-Format vorzubereiten.
In DynoTable öffnen
Sobald Local startet, connect from DynoTable — Einstellungen → Profile → endpoint http://localhost:8000, any region string, dummy credentials, then Verbindung testen. Open seeded tables with ⌘K without writing a connectivity script.
Bereite Seed-Daten mit dem JSON Converter. See Installation and Mit AWS verbinden für den vollen Local-Setup-Pfad.
Quellen
- Deploying DynamoDB locally (verifiziert 2026-07-13)
- amazon/dynamodb-local — Docker Hub (verifiziert 2026-07-13)
Verwandte Fehler
- Unable to start DynamoDB Local process — der übergeordnete Startfehler, in dem sich dieser oft versteckt.
- DynamoDB Local: Port 8000 belegt
- Could not connect to DynamoDB Local
- Learn: Running DynamoDB Local
Referenzen
- Deploying DynamoDB locally on your computer — AWS DynamoDB Developer Guide (the documented
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jarlaunch command) - DynamoDB local usage notes — AWS DynamoDB Developer Guide (
-sharedDb,-inMemoryand the other runtime options) - amazon/dynamodb-local — Docker Hub (official multi-architecture image — amd64 + arm64, so it runs natively on Apple Silicon)
Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.