我需要使用 nslookup 命令检查 DNS 配置。正确的检查方法已在以下链接中给出。
https://technet.microsoft.com/en-us/library/aa997324(v=exchg.65).aspx
现在 java 中的实际问题是如何在同一进程中一个接一个地执行命令,我必须捕获输出并根据输出我可能必须执行一些其他命令。截图如下。
很容易执行一个简单的命令,如“nslookup someIpAdrs”。但这里的要求是不同的。首先,我们必须进入 shell,在同一个 shell 中,我必须执行命令。
请建议我如何在 Java processBuilder 中做,或者是否有任何 java 库可以实现。
您需要使用执行原始命令的进程打开一个新的 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>);
然后您可以刷新缓冲区并随后读取输出。