所以我想使用Windows树的命令来显示目录中所有文件的层次结构图形表示。
但是当我运行命令时,
Process cmd=Runtime.getRuntime().exec("tree \"path\" /f /a");
我收到此错误
java.io.IOException: Cannot run program "tree": CreateProcess error=2, The system cannot find the file specified
java.lang.Runtime.exec(String command)
仅适用于某些命令吗?
答案 0 :(得分:3)
您要执行的程序称为tree.com
。
它是命令行解释器cmd.exe
,它使用PATHEXT
环境变量在路径中搜索具有各种扩展名的程序。 Java的API没有。
因此,您有2个选择:
添加扩展名:
Process cmd = Runtime.getRuntime().exec("tree.com \"path\" /f /a");
使用cmd.exe
运行它:
Process cmd = Runtime.getRuntime().exec("cmd.exe /c tree \"path\" /f /a");
.exe
扩展名是可选的,例如"cmd /c tree \"path\" /f /a"
也可以使用,但是需要任何其他扩展名(例如.com
),并且脚本(.bat
,.cmd
)必须与cmd.exe
一起运行。>