在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调用命令是以文件句柄的形式调用,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);
现在就恢复正常了
欢迎在评论区留言,欢迎关注我的CSDN @Ho1aAs