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. 把你的客户端指向它,配上一个占位区域 + 端点(参见 配置中缺少 region)。

从 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 agent。

30 天免费试用,无需信用卡 — 之后为无时间限制的免费版。