如何使用java进程逐个执行windows命令

时间:2017-11-09 16:04:19

标签: java

我需要使用nslookup命令检查DNS配置。检查的正确方法已在以下链接中给出。 https://technet.microsoft.com/en-us/library/aa997324(v=exchg.65).aspx

现在java中的实际问题是如何在同一个进程中逐个执行命令,我必须捕获输出,并根据输出我可能必须执行其他一些命令。屏幕截图如下所示。

Screenshot given below

很容易执行一个简单的命令,如" nslookup someIpAdrs"。但这里的要求是不同的。首先,我们必须进入shell并在同一个shell中,我必须执行命令。

请建议我在Java processBuilder中如何做,或者是否有任何java库可以实现。

1 个答案:

答案 0 :(得分:3)

您需要使用执行原始命令的Process打开一个新的PrintWriter并在那里打印您的参数。

例如:

final Process p = Runtime.getRuntime().exec("nslookup");
final BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
final char[] buf = new char[20];
System.out.println(new String(buf, 0, in.read(buf)));
//Send next command here
new PrintWriter(p.getOutputStream(),true).println(<next command>);

然后您可以刷新缓冲区并在此后读取输出。