問題タブ [expectj]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - expectJ - spawn.send() から InputStream を読み取る
次のコードでは、から InputStream を読み取りたいと思いますspawn.send("ls | grep *.dat\n");
。私のカルスは実装されSpawnable
、それはメソッドgetStdout()
ですが、それを使用する方法がわかりません。ExpectJ docs は次のように述べています。 getStdout()
- Spawn の stdout を読み取ることができるストリームを取得します。しかし、これは私にそれ以上のことをさせません。
expectj - ExpectJ:「対話」モードを終了するには?
Spawn.interact() を呼び出した後、どのように終了しますか?
ティア
レオ
java - JythonでExpectJを使用するには?
我が社ではなぜかJythonを使っています。私はそれをExpectJで拡張する必要がありますが、その方法を理解できませんでした。
私はexpectj-2.0.7.jar、expectj-2.0.7-sources.jar、およびexpectj-2.0.7-javadoc.jarファイルをダウンロードし、JythonとJava自体にもアクセスできるようにしました。
したがって、Pythonスクリプトにインポートでき、JVMもjarを見つけます(クラスパスローダーハックを使用して)。しかし、ExpectJ の docsによると、まだ何かが間違っています。
これは私が立ち往生しているところです。ExpectJ オブジェクトにメソッドがないのはなぜspawn
ですか? 誰かがこれに対する解決策を持っていますか?
java - インタラクティブモードでExpectJを使用して制御文字を送信するには?
しばらくの間、 expectJを使用して ssh (jsch) 経由でいくつかの管理タスクを自動化してきました。それはうまくいっています。
現在、制御文字によってトリガーされるコマンドを受け入れるインターフェイスに直面しています。たとえば、CTRL+B などです。
非インタラクティブな自動化タスクの場合、次のようにユニコード文字を送信するだけでうまく機能します
問題は、stdin と stdout を 2 つのスレッド ループに接続するexpectJ "インタラクティブ モードexpectj.StreamPiper
" です (ドキュメント化されていない という名前のクラス内で、まさにそれを行い、1 つのストリームから別のストリームにパイプします)。
コマンド ラインから実行していますが、Java コマンド ライン (stdin) から CTRL-B を送信する方法がわかりません。
私の質問は次のとおりSystem.in
です。インタラクティブモードでexpectJに制御文字を送信するにはどうすればよいですか?
Ps。回避策の 1 つは、これらの制御文字を何らかの形で「再マップ」することのようです。たとえば、あるコマンドは CTRL-Z によってトリガーされますが、UNIX 環境で CTRL-Z を発行すると、現在のプロセスがすぐにバックグラウンドに送られます。この場合、どうすればよいでしょうか?
更新 - 私はこれを使用しています。もっと良い方法があることを願っています (もちろん、このコードのリファクタリングについて話しているわけではありません)。からのスニペットexpectj.StreamPiper