システムコマンドをリモートで実行できる小さなクライアント/サーバーアプリケーションを作成しました。非対話型プログラムでは、出力を読む必要がある場合のみ正常に動作します。しかし、必要な場合にプロセスが開始されたときに、ユーザー入力を確実に送信する方法はありますか?プロセスが入力を促すかどうかを調べるにはどうすればよいですか?対話型CLIプログラムのリモート実行
答えて
「expectj」をご覧ください。これはhttp://en.wikipedia.org/wiki/Expect
http://expectj.sourceforge.net/
例のポートです:
// Create a new ExpectJ object with a timeout of 5s
ExpectJ expectinator = new ExpectJ(5);
// Fork the process
Spawn shell = expectinator.spawn("/bin/sh");
// Talk to it
shell.send("echo Chunder\n");
shell.expect("Chunder");
shell.send("exit\n");
shell.expectClose();
問題は、クライアントからリモートプログラムを実行しているユーザーが、何を "期待する"かわからないことです。リモートで実行されるプロセスが必要とするときはいつでも、入力を促されます。 – Ree
ああ、私はあなたが何をしたのか今見ていると思う。これで、プロセスの出力ストリームから読み込むことができます。例えばSystem.exec()はProcessを返します。Process.getOutputStream()は次のように出力ストリームを返します。次に、ユーザー入力をプロセスのInputStreamに送信します。意味がありますか? – laher
入力を送信する必要があることをどのように知ることができますか? – Ree
- 1. Python対話型CLIアプリケーション?
- 2. Apacheのantで対話型プログラムを実行
- 3. Pythonスクリプトから外部対話型プログラムを実行する
- 4. 対話型のPythonプログラムのテスト
- 5. プログラムを実行した後に対話型インタプリタをPythonに残す方法は?
- 6. 対話型SSHセッションからのPHP CLI出力の出力
- 7. 対話型CLIアプリケーションを開発するためのNodejsライブラリ/モジュール?
- 8. Javaからの対話型コマンドラインアプリケーションの実行
- 9. 対話型プロンプト
- 10. 対話型インタラクティブを実行中の例外
- 11. bashスクリプトで対話型ncatシェルのコマンドを実行します。
- 12. 昇華型3コンソールで対話型プログラムを出力
- 13. 対話型と非対話型のRセッションのトレースバック()
- 14. Python - 対話型電話帳
- 15. 対話型コマンドを実行できますか?
- 16. Antビルドスクリプトから対話型アプリケーションを実行するには?
- 17. none対話型pecl install stompを実行する方法
- 18. PHPウェブページから対話型シェルプログラムを実行する方法
- 19. 非対話型git pullを実行するには?
- 20. WindowsでVisual Studio C#対話型スクリプトを実行するには?
- 21. Python対話型シェル型アプリケーション
- 22. デフォルト - 非対話型
- 23. 対話型ズームインレンダリング図
- 24. 非対話型scp
- 25. 別の.NETプログラムからの対話型コマンドラインプログラムの使用方法
- 26. bashによる対話型プログラムの出力と入力のキャプチャ
- 27. リモートでプログラムでSSISパッケージを実行
- 28. Windowsの対話型通知
- 29. Herokuの対話型Ipythonノートブック
- 30. 対話型のpython/djangoチュートリアル
あなたはSSHを使用して見たことがありますか? (jSSHのようなJavaライブラリを介して)それはあなたがしようとしているようなものは非常に似ているように見えます。おそらくあなたはそれがどのように動作するか(または単にJavaをサーバにインストールする必要がなく、動作しても動作する)からいくつかのアイデアを取ることができます。 –
私はSSHが本当に必要ではありません。持ってる。私は標準のJavaライブラリを使用してこれを実装したいと思います(もし可能であれば)。 – Ree
SSHをサポートするJavaライブラリがあります。あなたはLinuxにとっては些細なことであり、Windowsにとってはかなり簡単なSSHサーバが必要です。 –