Windows XPでJavaを使用していて、telnetなどの別のプログラムにコマンドを送信できるようにしたいと考えています。単に別のプログラムを実行したくありません。それを実行し、実行されたら一連のコマンドを送信したいと思います。これが私がやりたいことの私のコードですが、それは機能しません:(コメントを外してコマンドを「cmd」に変更すると、期待どおりに機能します。助けてください。)これは単純化された例です。本番環境ではさらに多くのコマンドが送信されるため、「telnetlocalhost」の呼び出しを提案しないでください。
try
{
Runtime rt = Runtime.getRuntime();
String command = "telnet";
//command = "cmd";
Process pr = rt.exec(command);
BufferedReader processOutput = new BufferedReader(new InputStreamReader(pr.getInputStream()));
BufferedWriter processInput = new BufferedWriter(new OutputStreamWriter(pr.getOutputStream()));
String commandToSend = "open localhost\n";
//commandToSend = "dir\n" + "exit\n";
processInput.write(commandToSend);
processInput.flush();
int lineCounter = 0;
while(true)
{
String line = processOutput.readLine();
if(line == null) break;
System.out.println(++lineCounter + ": " + line);
}
processInput.close();
processOutput.close();
pr.waitFor();
}
catch(Exception x)
{
x.printStackTrace();
}