Java教程

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

本文主要是介绍『踩坑记录』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调用命令是以文件句柄的形式调用,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

这篇关于『踩坑记录』Java-Runtime.exec()执行命令报错Cannot run program “xxx“:系统找不到指定的文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!