『踩坑记录』Java-Runtime.exec()执行命令报错Cannot run program “xxx“:系统找不到指定的文件

文章目录

问题描述

在Windows调用exec执行dir时报错:Exception in thread “main” java.io.IOException: Cannot run program “dir”: CreateProcess error=2, 系统找不到指定的文件。

String[] cmd = {"dir"};
Runtime.getRuntime().exec(cmd);

『踩坑记录』Java-Runtime.exec()执行命令报错Cannot run program “xxx“:系统找不到指定的文件

解决

由于Java调用命令是以文件句柄的形式调用,Java并没有获取到shell,因此这里需要从cmd.exe调用dir,修改指令为cmd /c dir。同理,Linux下需要执行/bin/sh -c xxx

/c表示运行结束后关闭cmd.exe,另外/k表示不关闭

String[] cmd = {"cmd", "/c", "dir"};
Runtime.getRuntime().exec(cmd);

现在就恢复正常了
『踩坑记录』Java-Runtime.exec()执行命令报错Cannot run program “xxx“:系统找不到指定的文件

欢迎在评论区留言,欢迎关注我的CSDN @Ho1aAs

上一篇:VSCode报警告Missing semicolon的解决方法


下一篇:LeetCode每日一题题解:717. 1比特与2比特字符