从 Java 执行 cmd.exe 命令

Posted

技术标签:

【中文标题】从 Java 执行 cmd.exe 命令【英文标题】:Executing cmd.exe commands from Java 【发布时间】:2010-10-27 08:50:43 【问题描述】:

我试图从用户那里读取一个文件,其中每一行都是一个cmd.exe 命令,然后运行它(可以假设这些命令是合法的),但是当我给出一个类似echo hi 的命令时,我得到运行时异常错误:

线程“main”java.io.IOException中的异常:无法运行程序“echo”:CreateProcess error=2,系统找不到指定的文件

我正在尝试运行这样的命令:

Runtime.getRuntime().exec(command);

在哪里command = "echo hi"。这确实适用于像regedit 这样的命令,所以看起来我得到的运行时就像“运行”窗口而不是cmd。有没有办法运行这些命令?

【问题讨论】:

【参考方案1】:

那是因为echo 不是外部可执行命令(即,您的硬盘上没有echo.exe 文件,除非您自己放在那里)。这是shell的内部命令。

您可能会发现您需要执行以下操作:

cmd.exe /c echo hello

【讨论】:

以上是关于从 Java 执行 cmd.exe 命令的主要内容,如果未能解决你的问题,请参考以下文章

使用/不使用 cmd.exe 执行 Java 子进程命令行

用Javascript调用cmd并执行命令

c# 打开cmd.exe进程并执行多条命令

JAVA执行CMD命令

如何用shell调用多条cmd命令

如何使用任务计划程序启动 cmd.exe 来执行命令?