Runtime.exec()是否只对某些命令有效?

所以我想使用windows tree的命令来显示一个目录中所有文件的层次结构图。

但是当我运行这个命令时。

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却没有。

所以你有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.

给TA打赏
共{{data.count}}人
人已打赏
未分类

有固定效应的线性概率模型?

2022-9-8 17:25:19

未分类

为什么这个算法不能找到有向无环图中最长的路径?

2022-9-8 17:25:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索