【问题标题】:Why can't I run a batch command from my java program? [duplicate]为什么我不能从我的 java 程序运行批处理命令? [复制]
【发布时间】:2023-03-03 20:17:01
【问题描述】:

我正在尝试从我的 java 应用程序运行命令。我从用户那里得到输入并运行这行代码:Runtime.getRuntime().exec($userInput);。我尝试了很多简单的命令,包括“echo”、“start chrome”和“rem”。似乎唯一有效的命令是“cmd.exe”,我什至不知道它的作用。

诸如“echo”之类的命令会产生这个错误:

java.io.IOException: Cannot run program "echo": CreateProcess error=2, The system cannot find the file specified
            at java.lang.ProcessBuilder.start(Unknown Source)
            at java.lang.Runtime.exec(Unknown Source)
            at java.lang.Runtime.exec(Unknown Source)
            at java.lang.Runtime.exec(Unknown Source)
            at me.Draconwolver.Main.runCmd(Main.java:119)
            at me.Draconwolver.Main.main(Main.java:34)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
            at java.lang.ProcessImpl.create(Native Method)
            at java.lang.ProcessImpl.<init>(Unknown Source)
            at java.lang.ProcessImpl.start(Unknown Source)
            ... 6 more

请随时向我询问更多详情。

【问题讨论】:

标签: java batch-file ioexception createprocess


【解决方案1】:

因为echo,startrem等不是可执行程序。它们是 shell 命令。只有命令外壳才能理解它们。你必须运行它们

cmd /c echo
cmd /c start chrome

等等

【讨论】:

    猜你喜欢
    • 2010-10-21
    • 2021-12-07
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    相关资源
    最近更新 更多