Runtime.getRuntime().exec -- Cannot run program CreateProcess error=2, The system cannot find the file specified

问题原因

最近有个需求用Java调用nginx -V并返回输出,查了一下决定使用Runtime.getRuntime().exec()去执行命令.代码如下:

1
process = Runtime.getRuntime().exec(cmd, null, dir);

最初调用函数将正确路径和cmd都传入进去,其中cmd为nginx -V,但是返回下列错误:

Cannot run program “nginx -V”: CreateProcess error=2, 系统找不到指定的文件

解决办法

查了一下相关资料,只需要将原有的cmd命令由nginx -V改为cmd /c nginx -V即可

参考链接

CreateProcess error=2, The system cannot find the file specified

Runtime.getRuntime().exec -> Cannot run program CreateProcess error=2, The system cannot find the file specified