DynamoDB Local: Failed to load native library sqlite4java

TL;DR — DynamoDB Local 的儲存引擎在啟動時載入一個原生庫(sqlite4java),而 JVM 要麼找不到它,要麼無法執行它。兩個經典原因:你在啟動 jar 時沒有加 -Djava.library.path=./DynamoDBLocal_lib,或者你在一臺 Apple Silicon Mac 上,而捆綁的二進位制檔案是為 x86_64 構建的。把 JVM 指向原生庫資料夾、更新到當前的 DynamoDB Local,或者執行多架構的 Docker 映象。

這是什麼意思

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 Localnative library load failure

DynamoDB Local 是一個 Java 應用,其磁碟儲存由一個原生(按作業系統、按架構劃分的)庫支撐。UnsatisfiedLinkError 是 JVM 在說它無法連結那個二進位制檔案——要麼它根本不在庫路徑上,要麼檔案存在但是為與你 JVM 不同的作業系統/CPU 架構構建的。沒有它模擬器就無法啟動。

為什麼會發生

  • 缺少 -Djava.library.path——下載包把原生庫放在 DynamoDBLocal_lib/,而文件中的啟動命令必須把 JVM 指向那裡。裸跑 java -jar DynamoDBLocal.jar(或從不同的工作目錄執行)會丟失它們。
  • Apple Silicon(M 系列)+ 一個 x86_64 原生庫——較舊的 DynamoDB Local 構建和封裝只捆綁了 Intel 的 libsqlite4java-osx 二進位制檔案;一個 ARM64 JVM 會拒絕載入它們("no matching architecture")。
  • 一個封裝固定了舊副本——jest-dynamodbserverless-dynamodb-local 及類似工具會下載它們自己的 DynamoDB Local;一個快取的舊版本即使在你"更新"之後仍留著陳舊的原生庫。
  • 原生庫被解壓到一個被清理的臨時目錄——某些設定把它們解包進一個作業系統會清空的臨時資料夾,所以它能用到重啟為止。

如何修正

  1. 按文件的方式,從解壓後的資料夾啟動它:

    java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
  2. 更新 DynamoDB Local——下載當前發行版;較新的構建解決了曾困擾舊版的 Apple Silicon 問題。如果一個封裝管理著安裝,清除它的快取/重灌,讓它真正獲取新版本。

  3. 或者用 Docker 完全繞開原生庫——amazon/dynamodb-local 映象是最不脆弱的路徑,且能在 Apple Silicon 上執行:

    docker run -p 8000:8000 amazon/dynamodb-local
  4. 在 Apple Silicon 上且面對一個你無法更改的舊構建:Rosetta 2 下執行一個 x86_64 JDK(這樣 Intel 原生庫就與 JVM 匹配了),或者用社群釋出的 sqlite4java ARM64 構建替換 libsqlite4java-osx.dylib

  5. 記憶體逃生艙口: 在當前構建中,-inMemory 仍然需要該庫——它不是缺失原生庫的變通方法;請改為修復路徑/架構。

模擬器啟動後,把你的工具指向它——DynoTable 桌面應用http://localhost:8000 連線到 DynamoDB Local,讓你無需編寫指令碼即可瀏覽和檢查你已灌入種子資料的表。用 DynamoDB JSON 轉換器以傳輸格式準備種子項目。

在 DynoTable 中開啟

本地啟動後,從 DynoTable — Settings → Profiles → 端點 http://localhost:8000、任何區域字串、虛擬憑據進行連線,然後 Test Connection。使用 ⌘K 開啟種子表,無需編寫連線指令碼。使用 JSON converter 準備種子資料。請參閱 安裝連線 AWS 瞭解完整的本地設定路徑。

來源

相關錯誤

參考資料

最後核實於 2026-07-13,依據上方連結的 AWS 官方文件。

不必透過主控台就能操作 DynamoDB

一款快速的 DynamoDB 桌面用戶端,可執行 DynamoDB 無法執行的真正 SQL — JOINs、GROUP BY、聚合 — 並支援視覺化編輯與使用你自己的 Bedrock 金鑰的 AI 代理。

30 天免費試用,無需信用卡 — 之後為無時間限制的免費方案。