プログラムに --password オプションがありませんか? 通常、すべてのコマンド ライン ベースのプログラムは、主にスクリプトに対して実行します。
Runtime.getRuntime().exec(new String[]{"your-program", "--password="+pwd, "some-more-options"});
または、より複雑でエラーが発生しやすい方法:
try {
final Process process = Runtime.getRuntime().exec(
new String[] { "your-program", "some-more-parameters" });
if (process != null) {
new Thread(new Runnable() {
@Override
public void run() {
try {
DataInputStream in = new DataInputStream(
process.getInputStream());
BufferedReader br = new BufferedReader(
new InputStreamReader(in));
String line;
while ((line = br.readLine()) != null) {
// handle input here ... ->
// if(line.equals("Enter Password:")) { ... }
}
in.close();
} catch (Exception e) {
// handle exception here ...
}
}
}).start();
}
process.waitFor();
if (process.exitValue() == 0) {
// process exited ...
} else {
// process failed ...
}
} catch (Exception ex) {
// handle exception
}
このサンプルは、プロセスの出力を読み取る新しいスレッドを開きます (同時実行と同期に注意してください)。同様に、プロセスが終了していない限り、プロセスに入力を与えることができます:
if (process != null) {
new Thread(new Runnable() {
@Override
public void run() {
try {
DataOutputStream out = new DataOutputStream(
process.getOutputStream());
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(out));
bw.write("feed your process with data ...");
bw.write("feed your process with data ...");
out.close();
} catch (Exception e) {
// handle exception here ...
}
}
}).start();
}
お役に立てれば。