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 错误。
如何修复
- 安装/核实 Java 17+:
java -version。如果缺失或过旧,安装一个当前的 JDK/JRE(例如 Temurin 或 Corretto 17+)。 - 重新安装 DynamoDB Local:
npx serverless dynamodb install - 释放端口(或更改它):找出 8000 上的东西并停止它——
lsof -i :8000 # then kill the PID, or configure a different port - 使用官方 Docker 镜像,完全绕开 Java/架构问题:
docker run -p 8000:8000 amazon/dynamodb-local - 把你的客户端指向它,配上一个占位区域 + 端点(参见 配置中缺少 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。
相关错误
- Could not connect to DynamoDB Local
- DynamoDB Local UnsupportedClassVersionError——这个失败的 Java 过旧版本。
- DynamoDB Local sqlite4java errors——原生库/架构版本。
- 配置中缺少 region
- 学习:Running DynamoDB Local
参考资料
- Deploying DynamoDB locally on your computer — AWS DynamoDB Developer Guide (JRE 17+ requirement for v2.6.0+, launch command, default port 8000)
- DynamoDB local usage notes — AWS DynamoDB Developer Guide (
-portand the other runtime options) - amazon/dynamodb-local — Docker Hub (official image;
docker run -p 8000:8000 amazon/dynamodb-local)
最后核实于 2026-07-13,依据上方链接的 AWS 官方文档。