在 Java 中执行 windows 命令
Execute windows command in Java
需要运行 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,请告诉我我们该怎么做?
您应该 运行 仅 netstat -n
,其余的在 java 中完成。您还可以编写脚本,然后执行脚本而不是单独的命令。如果你真的需要在有管道的单行中完成所有操作,命令必须以 cmd /C
为前缀
在Windows中我们可以这样实现:
String[] cmd = { "cmd.exe", "/c",
"netstat -n | find \":3389\" | find \"ESTABLISHED\"" };
Process process = new ProcessBuilder(cmd).start();
需要运行 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,请告诉我我们该怎么做?
您应该 运行 仅 netstat -n
,其余的在 java 中完成。您还可以编写脚本,然后执行脚本而不是单独的命令。如果你真的需要在有管道的单行中完成所有操作,命令必须以 cmd /C
在Windows中我们可以这样实现:
String[] cmd = { "cmd.exe", "/c",
"netstat -n | find \":3389\" | find \"ESTABLISHED\"" };
Process process = new ProcessBuilder(cmd).start();