当前位置: 首页 > 知识库问答 >
问题:

java getRuntime(). exec()不能运行基本的cmd命令

韩豪
2023-03-14

我试图使用getRuntime(). exec()运行cmd命令。问题是,只有当我的命令字符串是ipconfig时,它才能工作,而如果我试图运行java-version或time等命令,它会抛出错误:

爪哇。木卫一。IOException:无法运行程序“time”:CreateProcess错误=2,系统找不到指定的文件

   String command = "time";
    Process p;
    try {
         p = Runtime.getRuntime().exec(command);
         BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
         String line;
            while (true) {
                line = r.readLine();
                if (line == null) { break; }
                //System.out.println(line);
                textField_1.setText(line);
            }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

共有1个答案

和谦
2023-03-14

我使用ProcessBuilder解决了这个问题。我仍然不知道为什么早期的代码不能适用于所有的命令。但是通过使用ProcessBuilder,我可以执行任何cmd查询。

以下是代码供参考:

String command_ping = "ping " + host_name;

            try {

                ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", command_ping);
                builder.redirectErrorStream(true);
                Process p = builder.start();

                BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
                StringBuffer buffer = new StringBuffer();
                String line = "";
                while (true) 
                {

                    buffer.append(line).append("\n");
                    line = r.readLine();
                    if (line == null) { break; }
                }
                message_ping= buffer.toString();
                p.waitFor();
                r.close();

            } 

            catch (IOException e) 
            {
                e.printStackTrace();
            } 

            catch (InterruptedException e) 
            {
                e.printStackTrace();
            }
 类似资料:
  • 问题内容: 这是一个通过 shell-form指令运行多个命令的愚蠢示例。我更喜欢使用 exec-form ,但是我不知道如何连接指令。 壳形式: 执行表格: 有人可以提供 exec-form 的等效语法吗? 问题答案: 简短的答案是,您不能将 exec形式的 命令链接在一起。 是Shell的功能,用于将命令链接在一起。实际上,当您在Dockerfile中使用此语法时,实际上是在利用Shell功能

  • 处理命令 # cmd_simple.py import cmd class HelloWorld(cmd.Cmd): def do_greet(self, line): print("hello") def do_EOF(self, line): return True if __name__ == '__main__': Hel

  • 本文向大家介绍在CMD命令行中运行python脚本的方法,包括了在CMD命令行中运行python脚本的方法的使用技巧和注意事项,需要的朋友参考一下 网上给出了各种方法,都无碍乎先切换到Python脚本所在目录,然后输入Python脚本名称并回车,本文这里给出了更简便的方法。 方法一: 进入Python脚本所在的文件夹,shift+右击,选择“在此处打开命令窗口”,按TAB键切换文件,选择目标pyt

  • 问题内容: 我发现了几个用于通过Java类运行cmd命令的代码段,但我无法理解。 这是打开cmd的代码 我找到了一些其他链接来添加其他命令,例如cd http://www.coderanch.com/t/109753/Linux-UNIX/exec-command-cd-command-java 如何使用Java打开命令提示符并插入命令? 谁能帮助我了解如何CD目录,例如: 然后在该目录上运行其他

  • 我找到了几个通过Java类运行cmd命令的代码片段,但我无法理解。 这是打开命令的代码 我还找到了一些添加其他命令的链接,比如cdhttp://www.coderanch.com/t/109753/Linux-UNIX/exec-command-cd-command-java 如何使用Java打开命令提示符并插入命令? 有人能帮我了解如何cd目录,例如: 然后在该目录上运行其他命令?

  • 我正在尝试使用ProcessBuild运行cmd语句。 但是,我只能打开cmd。exe 那么如何编写此语句通过java运行cmd命令??我得到了错误,因为语句由"*"组成。如何编辑ProcessBuilder以便我可以运行语句?非常感谢

  • 我目前正在尝试学习如何使用PhoneGap为android手机开发应用程序。我得到了这本名为《PhoneGap 2x移动应用程序开发》的书。这本书真的很好,不言自明,但我的问题是,当作者想通过命令行创建d项目时,他使用的是Unix命令,因为他运行的是Unix PC。我运行的是Windows,使用CMD来遵循他的命令对我来说有点难,因为我不理解他的所有命令。 他写道: 有人能告诉我如何在window

  • 我想一个接一个地从java代码中成功地运行多个cmd命令。 我想使用这个创建ssh连接的命令行应用程序,我想像在正常的命令提示符窗口中一样连续运行多个命令,而不需要实际关闭会话。我在java中找到的关于运行cmd命令的大多数答案都谈到了运行单个命令然后停止。就像这个问题的答案: 通过java运行cmd命令 我需要将命令的输出重定向到控制台,并从控制台获取新命令作为输入。有点像用java代码模拟cm