DynamoDB Locale "Failed to load native library sqlite4java": impossibile caricare la libreria nativa sqlite4java
TL;DR — DynamoDB Il motore di archiviazione locale carica una libreria nativa (sqlite4java) all'avvio e la JVM non riesce a trovarla o non riesce a eseguirla. Due cause classiche: hai avviato il jar senza -Djava.library.path=./DynamoDBLocal_lib oppure sei su un Mac Apple Silicon e il file binario in bundle è per x86_64. Punta la JVM nella cartella native-lib, aggiorna a una DynamoDB Local corrente o esegui l'immagine Docker multi-arch.
Cosa 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 è un'applicazione Java la cui archiviazione su disco è supportata da una libreria nativa (per sistema operativo, per architettura). "UnsatisfiedLinkError" è la JVM che dice che non è possibile collegare quel file binario: o non si trova affatto nel percorso della libreria oppure il file esiste ma è stato creato per un'architettura sistema operativo/CPU diversa rispetto alla tua JVM. L'emulatore non può avviarsi senza di esso.
Perché succede
- Mancante
-Djava.library.path: il download spedisce i nativi inDynamoDBLocal_lib/e il comando di avvio documentato deve puntare la JVM lì. L'esecuzione dijava -jar DynamoDBLocal.jarbare (o da una directory di lavoro diversa) li perde. - Apple Silicon (serie M) + x86_64 nativo: build e wrapper locali DynamoDB precedenti raggruppano solo i binari Intel
libsqlite4java-osx; una JVM ARM64 si rifiuta di caricarli ("nessuna architettura corrispondente"). - Un wrapper che blocca una vecchia copia —
jest-dynamodb,serverless-dynamodb-locale strumenti simili scaricano il proprio DynamoDB Local; una vecchia versione memorizzata nella cache mantiene i nativi obsoleti anche dopo l'"aggiornamento". - Nativi estratti in una directory temporanea che è stata pulita: alcune configurazioni vengono decompresse in una cartella temporanea che il sistema operativo cancella, quindi funziona fino al riavvio.
Come risolverlo
Avvialo in modo documentato, dalla cartella estratta:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDbAggiornamento DynamoDB Locale: scarica la versione corrente; le build più recenti risolvono la situazione del silicio Apple che affliggeva quelle più vecchie. Se un wrapper gestisce l'installazione, svuota la cache/reinstalla in modo che recuperi effettivamente la nuova versione.
Oppure eludi completamente i nativi con Docker: l'immagine
amazon/dynamodb-localè il percorso meno fragile e funziona su Apple Silicon:docker run -p 8000:8000 amazon/dynamodb-localSu Apple Silicon con una vecchia build non è possibile modificare: esegui un x86_64 JDK sotto Rosetta 2 (i nativi Intel corrispondono quindi alla JVM) o sostituisci
libsqlite4java-osx.dylibcon la build ARM64 di sqlite4java pubblicata dalla comunità.Porta di fuga in memoria:
-inMemorynecessita ancora della libreria nelle build attuali: non è una soluzione alternativa per un nativo mancante; correggi invece il percorso/arco.
Aprilo in DynoTable
Una volta avviato Local, connettiti da DynoTable — Impostazioni → Profili → endpoint http://localhost:8000, qualsiasi stringa della regione, credenziali fittizie, quindi Test connessione. Apri tabelle con seeding con ⌘K senza scrivere uno script di connettività.
Prepara i dati seed con il convertitore JSON. Consulta Installa e Connetti a AWS per il percorso completo di configurazione locale.
Fonti
- Distribuzione DynamoDB localmente (verificato il 13-07-2026)
- amazon/dynamodb-local — Docker Hub (verificato il 13-07-2026)
Errori correlati
- Impossibile avviare DynamoDB Processo locale — l'errore di avvio ombrello che spesso si nasconde al suo interno.
- DynamoDB Porta locale 8000 in uso
- Impossibile connettersi a DynamoDB Locale
- Impara: In esecuzione DynamoDB Locale
Riferimenti
- Distribuzione di DynamoDB localmente sul computer — AWS DynamoDB Guida per gli sviluppatori (il documento
java -Djava.library.path=./DynamoDBLocal_lib -jar comando di avvio DynamoDBLocal.jar) - DynamoDB note sull'utilizzo locale — AWS DynamoDB Guida per gli sviluppatori (
-sharedDb,-inMemorye le altre opzioni di runtime) - amazon/dynamodb-local — Docker Hub (immagine ufficiale multi-architettura — amd64 + arm64, quindi funziona in modo nativo su Apple Silicon)Ultima verifica il 13-07-2026 rispetto alla documentazione ufficiale AWS collegata sopra.