Node.js spawn传递参数时路径字符异常问题(macOS环境)
解决Node.js spawn启动DynamoDBLocal的类加载错误
你的问题根源在于spawn的参数数组格式不符合要求,shell中用空格分隔的参数必须逐个拆分为数组元素,且Java系统属性参数缺少必要的前缀。
修正后的代码
const args = [ '-Djava.library.path=./DynamoDBLocal_lib', '-jar', './DynamoDBLocal.jar', 'inMemory' ] const dynamodb = spawn('java', args, {cwd: './dynamodb_local'})
关键修正点
- 补上
-D前缀:Java系统属性参数必须以-D开头,你之前漏了这个前缀,导致JVM误把该参数当成主类名,从而抛出"找不到或无法加载主类"的错误。 - 拆分合并的参数:
spawn要求每个命令行参数都是独立的数组元素,不能将-jar ./DynamoDBLocal.jar合并成一个字符串,否则会被java命令当作单个无效参数解析。 - 路径异常问题是参数格式错误导致的解析混乱,修正参数后该问题会自动消失。
内容的提问来源于stack exchange,提问作者asnaeb
相关产品推荐
相关产品推荐

