2017-11-09 14 views
1

nslookupコマンドを使用してDNS設定を確認する必要があります。適切なチェック方法は、次のリンクに記載されています。 https://technet.microsoft.com/en-us/library/aa997324(v=exchg.65).aspxJavaプロセスを使用してwindowsコマンドを1つずつ実行する方法

javaの実際の問題は、同じプロセスでコマンドを1つずつ実行する方法です。出力をキャプチャする必要があり、出力に基づいて他のコマンドを実行する必要があります。スクリーンショットは以下の通りです。

Screenshot given below

"nslookupコマンドのsomeIpAdrs" のような単純なコマンドを実行することは容易です。しかし、ここでは要件が異なります。まず最初に、シェルに入り、同じシェルにコマンドを実行する必要があります。

Java processBuilderの実行方法や、達成するためのJavaライブラリがあるかどうかを教えてください。

+0

https://www.mkyong.com/java/how-to-execute-shell-command-from-java/ – crammeur

+0

私は既にこれらのサイトを通過しています。要件は似ていませんが、ここでは異なります。最初に "nslookup"コマンドを適用すると、シェルが作成されます。次に、そのシェルで異なるタイプのコマンドを実行し、出力をキャプチャしてから他のコマンドを実行します。 – Sambit

答えて

3

元のコマンドを実行したプロセスで新しい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>); 

あなたはその後、バッファをフラッシュし、その後、出力を読み取ることができます。