Runtime.exec() 是否仅适用于某些命令?
Does Runtime.exec() work only for certain commands?
所以我想使用 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)
是否只对某些命令有效?
您要执行的程序名为 tree.com
。
是命令行解释器cmd.exe
使用PATHEXT
环境变量来搜索各种扩展程序的路径。 Java 的 API 没有。
所以你有两个选择:
添加扩展名:
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
.
所以我想使用 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)
是否只对某些命令有效?
您要执行的程序名为 tree.com
。
是命令行解释器cmd.exe
使用PATHEXT
环境变量来搜索各种扩展程序的路径。 Java 的 API 没有。
所以你有两个选择:
添加扩展名:
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
.