Java中执行Node.js命令报错:无法找到指定文件
Java中执行Node.js命令报错:无法找到指定文件
嘿,这个问题我碰到过好多次啦!你踩的坑其实是ProcessBuilder的基础用法错误——你把整个node --version命令当成单个字符串传给了ProcessBuilder,但它的构造逻辑是命令和参数要分开传,不能混在一起。
为什么会报错呢?因为Windows的CreateProcess会把你传入的整个字符串当成「要执行的程序文件名」,而不是去识别这是node程序加上--version参数。系统里肯定没有一个叫node --version的文件,所以就会抛出那个"无法找到指定文件"的错误啦。
给你改好的正确代码:
ProcessBuilder pb = new ProcessBuilder("node", "--version"); pb.redirectOutput(ProcessBuilder.Redirect.INHERIT); pb.redirectError(ProcessBuilder.Redirect.INHERIT); Process p = pb.start();
另外补充个小提醒:如果你的Node.js没有配置到系统PATH环境变量里,那你得把node换成完整的安装路径,比如"C:\\Program Files\\nodejs\\node.exe",这样系统才能准确定位到程序。
备注:内容来源于stack exchange,提问作者podoshva
相关产品推荐
相关产品推荐

