【问题标题】:Execute windows command in Java在Java中执行windows命令
【发布时间】:2017-03-10 07:05:08
【问题描述】:

需要运行netstat -n |找到“:3389” |使用 Java 运行时查找“ESTABLISHED” 命令。

尝试像:Runtime.getRuntime().exec(cmd);,但如果我们有 |,我们就不能这样做。 (管道) 在我们的命令中。

我找到了 linux 命令,我们可以像这样构造: String[] cmd = {"/bin/sh", "-c", "grep -c 'Report Process started' /path/to/server.log"}; Runtime.getRuntime().exec(cmd); 但我需要windows,请告诉我我们该怎么做?

【问题讨论】:

标签: java windows powershell runtime.exec


【解决方案1】:

您应该只运行netstat -n 并在java 中完成其余的工作。您还可以编写一个脚本,并执行该脚本而不是单独的命令。如果您确实需要在具有管道的单行中执行所有操作,则该命令必须以 cmd /C 为前缀

【讨论】:

  • 是的,但是检查是否有其他类似于 linux 的方式。因为这样看起来更干净,我们可以很容易地找到我们正在做的事情。
【解决方案2】:

在 Windows 中我们可以这样实现:

String[] cmd = { "cmd.exe", "/c",
                    "netstat -n | find \":3389\" | find \"ESTABLISHED\"" };
Process process = new ProcessBuilder(cmd).start();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 2016-02-29
    相关资源
    最近更新 更多