問題点
javaで外部コマンドを実行したいのですが、その途中でPINの入力を求められる場面があるのですが、PINをあらかじめ文字列に格納してそれを送るというのをネットで調べながら、以下のように2つのパターンでコードを書いたところ、どちらもおそらく文字列が送れていないか、またはPINとして認識されていないようでした。
該当のソースコード(パターン1)
java
1ProcessBuilder pb2 = new ProcessBuilder("cmd", "/c", cmd2); 2pb2.directory(dir); 3pb2.redirectErrorStream(true); 4 5Process p2 = pb2.start(); 6 7BufferedWriter writer =new BufferedWriter(new OutputStreamWriter(p2.getOutputStream())); 8writer.write(pin); 9writer.newLine(); 10writer.flush(); 11p2.waitFor(); 12writer.close();
該当のソースコード(パターン2)
java
1ProcessBuilder pb2 = new ProcessBuilder("cmd", "/c", cmd2); 2pb2.directory(dir); 3pb2.redirectErrorStream(true); 4 5Process p2 = pb2.start(); 6 7PrintStream out = new PrintStream(p2.getOutputStream()); 8System.out.println(pin); 9out.println(pin); 10out.flush(); 11p2.waitFor(); 12out.close();
あなたの回答
tips
プレビュー