DynamoDB Local: Failed to load native library sqlite4java
TL;DR — O motor de armazenamento do DynamoDB Local carrega uma biblioteca nativa (sqlite4java) na inicialização, e a JVM ou não consegue encontrá-la ou não consegue executá-la. Duas causas clássicas: você lançou o jar sem -Djava.library.path=./DynamoDBLocal_lib, ou você está em um Mac com Apple Silicon e o binário empacotado é para x86_64. Aponte a JVM para a pasta de bibliotecas nativas, atualize para um DynamoDB Local atual, ou rode a imagem Docker multi-arch.
O que 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 failureO DynamoDB Local é uma aplicação Java cujo armazenamento em disco é sustentado por uma biblioteca nativa (por SO, por arquitetura). UnsatisfiedLinkError é a JVM dizendo que não conseguiu linkar aquele binário — ou ele não está no library path de jeito nenhum, ou o arquivo existe mas foi compilado para um SO/CPU diferente da sua JVM. O emulador não consegue iniciar sem ele.
Por que isso acontece
-Djava.library.pathausente — o download traz as bibliotecas nativas emDynamoDBLocal_lib/, e o comando de lançamento documentado precisa apontar a JVM para lá. Rodarjava -jar DynamoDBLocal.jarsozinho (ou de um diretório de trabalho diferente) as perde.- Apple Silicon (série M) + uma nativa x86_64 — builds e wrappers mais antigos do DynamoDB Local empacotam apenas binários Intel
libsqlite4java-osx; uma JVM ARM64 se recusa a carregá-los ("no matching architecture"). - Um wrapper fixando uma cópia antiga —
jest-dynamodb,serverless-dynamodb-locale ferramentas similares baixam seu próprio DynamoDB Local; uma versão antiga cacheada mantém as nativas obsoletas por perto mesmo depois de você "atualizar". - Nativas extraídas para um dir temporário que foi limpo — alguns setups descompactam em uma pasta temporária que o SO limpa, então funciona até o reboot.
Como corrigir
Lance-o da forma documentada, a partir da pasta extraída:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDbAtualize o DynamoDB Local — baixe a versão atual; builds mais novos resolvem a situação do Apple Silicon que atormentava os antigos. Se um wrapper gerencia a instalação, limpe o cache/reinstale para que ele realmente busque a nova versão.
Ou contorne os nativos de vez com o Docker — a imagem
amazon/dynamodb-localé o caminho menos frágil e roda no Apple Silicon:docker run -p 8000:8000 amazon/dynamodb-localNo Apple Silicon com um build antigo que você não pode trocar: rode um JDK x86_64 sob o Rosetta 2 (aí os nativos Intel batem com a JVM) ou substitua o
libsqlite4java-osx.dylibpelo build ARM64 do sqlite4java publicado pela comunidade.Válvula de escape em memória: o
-inMemoryainda precisa da biblioteca nos builds atuais — ele não é uma solução para um nativo ausente; corrija o path/arquitetura.
Abra no DynoTable
Assim que o Local subir, conecte-se pelo DynoTable — Configurações → Perfis → endpoint http://localhost:8000, qualquer string de região, credenciais fictícias e então Testar conexão. Abra as tabelas com dados de seed usando ⌘K sem escrever um script de conectividade.
Prepare os dados de seed com o conversor de JSON. Consulte Instalar e Conectar ao AWS para o caminho completo de configuração do Local.
Fontes
- Deploying DynamoDB locally (verificado em 13/07/2026)
- amazon/dynamodb-local — Docker Hub (verificado em 13/07/2026)
Erros relacionados
- Não é possível iniciar o processo local do DynamoDB — a falha de inicialização guarda-chuva dentro da qual isto frequentemente se esconde.
- Porta 8000 do DynamoDB Local em uso
- Não foi possível conectar ao DynamoDB Local
- Aprenda: Executando DynamoDB Local
Referências
- Deploying DynamoDB locally on your computer — AWS DynamoDB Developer Guide (o comando de lançamento documentado
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar) - DynamoDB local usage notes — AWS DynamoDB Developer Guide (
-sharedDb,-inMemorye as demais opções de runtime) - amazon/dynamodb-local — Docker Hub (imagem oficial multiarquitetura — amd64 + arm64, então roda nativamente no Apple Silicon)
Última verificação em 13/07/2026 em relação à documentação oficial da AWS vinculada acima.