Unable to start DynamoDB Local process

TL;DR — DynamoDB Local(一個 Java 應用)無法啟動。常見原因是缺少或過舊的 Java 執行時、埠 8000 已被佔用,或者 serverless-dynamodb 外掛從未下載 jar。修復 Java、釋放埠,或重新安裝。

這是什麼意思

你會從 serverless-dynamodb / serverless-dynamodb-local 外掛看到它,或者在直接執行 jar 時看到:

Unable to start DynamoDB Local process!

執行本地模擬器的子程序未能生成或立即退出了。

為什麼會發生

  • 沒有 Java,或版本不相容。 DynamoDB Local 需要一個 Java 執行時——當前版本(v2.6.0 及更新,包括 v3.x)要求 JRE 17+。如果 java -version 失敗,那就是原因;如果它列印出一箇舊版本,你往往會在底層輸出中看到 UnsupportedClassVersionError
  • 埠已被佔用——別的東西在 8000 上(一個沒有關閉的先前例項)。
  • jar 從未安裝——sls dynamodb install 沒執行或失敗了,因此沒有東西可啟動。
  • 安裝目錄的路徑/許可權問題
  • Apple Silicon / 架構不匹配,配上一個捆綁了原生 SQLite 庫的舊 jar。

Download failures

npx serverless dynamodb install或者Maven外掛下載失敗時(網路代理、企業 TLS 檢查或完整磁碟),啟動命令發現沒有 jar 並以相同的通用 Unable to start DynamoDB Local process! 退出包裝器 — 在追蹤 Java 之前檢查外掛日誌中是否有 ENOENT 或 HTTP 錯誤。

如何修正

  1. 安裝/核實 Java 17+: java -version。如果缺失或過舊,安裝一個當前的 JDK/JRE(例如 Temurin 或 Corretto 17+)。
  2. 重新安裝 DynamoDB Local:
    npx serverless dynamodb install
  3. 釋放埠(或更改它):找出 8000 上的東西並停止它——
    lsof -i :8000   # then kill the PID, or configure a different port
  4. 使用官方 Docker 映象,完全繞開 Java/架構問題:
    docker run -p 8000:8000 amazon/dynamodb-local
  5. 把你的用戶端指向它,配上一個佔位區域 + 端點(參見 設定中缺少區域)。

從 DynoTable 連線

如果 Java/arch 或失敗的 jar 下載阻止本地,請執行官方 Docker 映像並在沒有本地 JRE 的情況下連線 DynoTable (Install DynoTable)。在設定→設定檔案→新增Profile中,設定端點http://localhost:8000,選擇一個預留位置區域,並使用字母數字虛擬憑據 - 然後 Test Connection。該路徑避開了 Unable to start DynamoDB Local process! 完全產卵失敗。演練:Running DynamoDB Local。如果外掛從未下載過 jar,請重新執行 npx serverless dynamodb install 並確認安裝目錄可寫 - 許可權錯誤表現為相同的通用生成訊息,沒有 Java 堆疊跟蹤。 Local啟動後,載入fixture 與DynamoDB JSON converter

相關錯誤

參考資料

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

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

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

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