0

重複の可能性:
Java で stdin と stdout をリダイレクトする

Javaでシェルコマンドを実行する方法は知っていますが、アプリケーションが入力に書き込み、出力から読み取ることができるようにする方法は知っています。

4

1 に答える 1

3

あなたはあなたの質問に答えを説明したと思います。

Java から外部アプリケーションを実行している場合、標準出力および標準入力ストリームを使用するRuntime.exec()か、アクセスできます。ProcessBuilder外部アプリケーションが書き込む内容を読み取るためのユーザー入力ストリームと、コマンドを外部アプリケーションに送信するための出力ストリーム。

しかし、注意してください。一部のアプリケーションは、java から送信されたコマンドを取得できません。たとえばssh、Unix システムのコマンドは、人間以外のユーザー (他のアプリケーションなど) による使用を避けるように設計されています。セキュリティ上の理由から端末から実行する必要があるため、たとえば実行ssh otherhostしてからJavaからユーザー/パスワードを送信することはできません. これが必要な場合は、expectターミナルをシミュレートし、スクリプトによって駆動されるという名前の他のコマンドラインユーティリティを介してコマンドを実行する必要があります。

于 2012-05-20T17:32:48.063 に答える