DynamoDB Local "Failed to load native library sqlite4java": no se pudo cargar la biblioteca nativa sqlite4java
TL;DR — El motor de almacenamiento de DynamoDB Local carga una biblioteca nativa (sqlite4java) al inicio, y la JVM no puede encontrarla o no puede ejecutarla. Dos causas clásicas: iniciaste el jar sin -Djava.library.path=./DynamoDBLocal_lib, o estás en una Apple Silicon Mac y el binario incluido es para x86_64. Apunte la JVM a la carpeta Native-lib, actualice a un DynamoDB Local actual o ejecute la imagen Docker multiarquitectura.
Qué significa
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 es una aplicación Java cuyo almacenamiento en disco se apoya en una biblioteca nativa (por SO, por arquitectura). UnsatisfiedLinkError es la JVM diciéndote que no pudo enlazar ese binario — o no está en la ruta de bibliotecas en absoluto, o el archivo existe pero se compiló para un SO/CPU distinto al de tu JVM. El emulador no puede arrancar sin él.
Por qué ocurre
- Falta
-Djava.library.path— la descarga incluye las bibliotecas nativas enDynamoDBLocal_lib/, y el comando de lanzamiento documentado debe apuntar la JVM ahí. Ejecutarjava -jar DynamoDBLocal.jara secas (o desde otro directorio de trabajo) las pierde. - Apple Silicon (serie M) + una nativa x86_64 — las versiones y wrappers antiguos de DynamoDB Local incluyen solo binarios Intel
libsqlite4java-osx; una JVM ARM64 se niega a cargarlos ("no matching architecture"). - Un wrapper anclado a una copia antigua —
jest-dynamodb,serverless-dynamodb-localy herramientas similares descargan su propio DynamoDB Local; una versión antigua en caché mantiene las nativas obsoletas incluso después de "actualizar". - Nativas extraídas a un directorio temporal que se limpió — algunas configuraciones descomprimen en una carpeta temporal que el SO borra, así que funciona hasta el reinicio.
Cómo solucionarlo
Láncalo de la forma documentada, desde la carpeta extraída:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDbActualiza DynamoDB Local — descarga la versión actual; las versiones nuevas resuelven la situación de Apple Silicon que afectaba a las antiguas. Si un wrapper gestiona la instalación, limpia su caché/reinstala para que realmente descargue la nueva versión.
O evita las nativas por completo con Docker — la imagen
amazon/dynamodb-locales el camino menos frágil y funciona en Apple Silicon:docker run -p 8000:8000 amazon/dynamodb-localEn Apple Silicon con una versión antigua que no puedes cambiar: ejecuta un JDK x86_64 bajo Rosetta 2 (las nativas Intel entonces coinciden con la JVM), o reemplaza
libsqlite4java-osx.dylibcon la versión ARM64 de sqlite4java publicada por la comunidad.Salida de emergencia en memoria:
-inMemorysigue necesitando la biblioteca en las versiones actuales — no es un rodeo para una nativa que falta; arregla la ruta/arquitectura en su lugar.
Ábrelo en DynoTable
Cuando Local arranque, conéctate desde DynoTable — Settings → Profiles → endpoint http://localhost:8000, cualquier cadena de región, credenciales ficticias, y luego Test Connection. Abre las tablas sembradas con ⌘K sin escribir un script de conectividad.
Prepara los datos de siembra con el conversor de JSON. Consulta Instalación y Conectar con AWS para el camino completo de configuración de Local.
Fuentes
- Deploying DynamoDB locally (verificado el 2026-07-13)
- amazon/dynamodb-local — Docker Hub (verificado el 2026-07-13)
Errores relacionados
- Unable to start DynamoDB Local process — el fallo de arranque paraguas dentro del que esto suele esconderse.
- Puerto 8000 de DynamoDB Local en uso
- No se pudo conectar a DynamoDB Local
- Aprende: Ejecutar DynamoDB Local
Referencias
- 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)
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.