次のようなJavaプログラムからコマンドを実行しています
Process myProcess = Runtime.getRuntime().exec("sudo cat /etc/sudoers"); //It asks for password so I send password through outputstream from my program.
InputStream inputStream = myProcess.getInputStream();
OutputStream outputStream = myProcess.getOutputStream();
outputStream.write("mypassword".getBytes()); // write password in stream
outputStream.flush();
outputStream.close();
しかし、問題は、プログラムから出力ストリームを介してパスワードを既に送信しているため、パスワードを再度要求されることです。これを解決するために、私は何度も試しましたが、実際にはできませんでした。
シェル スクリプトを使用することで、端末にパスワードを提供することができ、プログラムは正常に動作しますが、最も柔軟な方法ではありません。
私のJavaプログラムを介してパスワードを提供する方法を教えてもらえますか? (シェルプログラミングの代わりに)