端末コマンドを使用して動作させる必要があるプログラムを Java で作成しています。私の関数は基本的に次のようになります:
public void sendLoginCommand() throws IOException
{
System.out.println("\n------------Sending Login Command------------\n");
String cmd="qskdjqhsdqsd";
Runtime rt = Runtime.getRuntime();
Process p=rt.exec(cmd);
}
public Process sendPassword(String password) throws IOException
{
System.out.println("\n------------Sending Password------------\n");
String cmd=password;
Runtime rt = Runtime.getRuntime();
Process p=rt.exec(cmd);
return p;
}
public void login(String password) throws IOException
{
sendLoginCommand();
Process p = sendPassword(password);
System.out.println("\n------------Reading Terminal Output------------\n");
Reader in = new InputStreamReader(p.getInputStream());
in = new BufferedReader(in);
char[] buffer = new char[20];
int len = in.read(buffer);
String s = new String(buffer, 0, len);
System.out.println(s);
if(s.equals("Password invalid.")) loggedIn=false;
else loggedIn=true;
}
ここで、プログラムは p4 login コマンドを正しく送信しますが、端末はパスワードを要求します。sendLoginCommand() と同じ行を使用すると、プログラムはエラーを返します。どうやら、Process を介して送信できるのは標準コマンドのみです。誰かが通常の文字列を端末に送信する方法を知っていることを望んでいました
前もって感謝します