問題タブ [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を使用してJavaでpg_dump(PostgreSQL 8.4の場合)を呼び出すにはどうすればよいですか?
私はこの問題を多くの場所で見ました。つまり、PostgreSQLからプログラムでバックアップを作成する際の問題です。私の解決策はExpectJを使用することですが、コードを機能させるのに問題があります。
私は次のコードを持っています:
ただし、shell.expect行では、タイムアウトになっています。
コマンドプロンプトからこのコマンドを実行すると、次のようになります。
C:\ Documents and Settings \ bobjonesthe3rd> "C:\ Program Files \ PostgreSQL \ 8.4 \ bin \ pg_dump" -h localhost -U myUserName myDB
パスワード:
つまり、パスワードの入力を求めるプロンプトが表示されることはわかっていますが、ExpectJは何らかの理由でプロンプトを受信していません。
どんな助けでも大歓迎です。
ありがとう、マット
java - ExpectJツールを使用してJavaコードでUnixシェルスクリプトを実行するには?
これは私の hello.sh シェルスクリプトです
================================================== ======
これは私のJavaコードです
================================================== ====================
そして、これは私の出力です
名前: //これはそれが要求するワットです
abcd //これは私が与えるものです..そして何も起こりません
================================================== ==========
上記のJavaコードを修正しました..
java - Javaでsshコマンドを実行中にエラーが発生しました
この方法でEclipseでsshコマンドを実行しようとしています
しかし、私はこれをエラーとして受け取ります-
次のようにやってみると、
実行すると、このエラーが発生します
また、コードは半分しか実行されず、このメッセージが表示されます-
そして最後に私はタイムアウト例外に直面します
助言がありますか?これらのエラーメッセージの意味がわかりません。
java - JSCH Java アプレット
JSCH SSH Java アプレットを Web ページに埋め込んでおり、(PHP などの任意の言語の) スクリプトを実行して、ログインとコマンドの実行を自動化できるかどうかを知る必要があります。私は、expect4j と Java ロボットについて聞いたことがありますが、それを実装する方法がわかりません。私はJavaが得意ではないので、Javaについてすべてを知っているわけではありません。どんな助けでも大歓迎です。
java - Javaを使用してインタラクティブログインでrsyncをラップする方法は?
Java を使用して rsync をラップしようとしていますが、対話型ログインの処理に苦労しています。UNIX コマンド ライン ユーティリティexpect
を動作させることはできますが、同等の Java を理解できないようですExpectJ
。これが私の現在のコードです:
これを実行すると、次のエラーが表示されます。
Java から rsync を呼び出しているため、通常の ssh インタラクティブ ログインが開始されていないようです。を使用する類似のシェルスクリプトexpect
は問題なく動作します。また、公開鍵認証を使用すると、同様の Java コードが機能するようです。だけを使用したい場合はssh
、JSch などのライブラリを使用しますが、java rsync ライブラリはどれもあまり信頼していないため、コマンド ライン ツールをラップしたいと考えています。
ご協力いただきありがとうございます!
java - Telnet の ExpectJ
JavaでExpectに相当するものを使用したい。これは簡単なコードです:
その結果、私はゴミを手に入れています:
出口:
ただし、コマンドラインからtelnetを使用すると接続できます。
助けてください。
java - sshを介してリモートサーバー上で複数の無関係なコマンドを実行するJavaライブラリ
私のJavaアプリケーションは次のように動作する必要があります。
- ユーザーがGUIでbashコマンドを選択し、「送信」を押します。
- アプリケーションは、コマンドごとに個別の独立した回答を返します(たとえば、それらを異なるファイルに保存できます)。
- コマンドはそれぞれ、バッチではなくインタラクティブに実行されます( "ls \ n pwd \ n"などのようなものにすることはできません)
- 各コマンドの後で、アプリケーションは結果に問題がないかどうかを確認します。その場合、次のコマンドを送信します。
su <user>
リモートホストで実行する必要があります。
これはより大きなアプリのプラグインになるので、「他の何かを試してみてください」(RPC、Webサービスなど)のような答えは役に立ちません:(
私が理解している限り、私はシェルを使用するか、少なくともチャネルを接続したままにする必要があります。
jsch、sshj、ethz.ssh2をテストしましたが、悪い結果になりました。
「sending-commands-to-server-via-jsch-shell-channel」などの質問に対するstackoverflowの回答を掘り下げました。しかし、それらはすべて、コマンド全体を1行で送信することに重点を置いています。インタラクティブで永続的なSSHセッションが必要です。
私はExpectJを使用しました(出力ストリームを少しハックしました)。ポイント1、3、4、5を解決しました。
しかし、ポイント2には問題があります。私のアプリでは、個別の回答を取得する必要があります。しかし、それらの長さはわかりません。コマンドプロンプトは異なる場合があります。誰もがExpectJを「ハック」する方法を知っているので、それはいくらかより同期されますか?私はこのように振る舞うことを探しています:送信、完全な回答を待つ、送信、待機...いくつかの基本的な同期のトリックを試しましたが、これはタイムアウトに終わり、通常は接続が失われます。
java - 同期された方法でExpectJを使用する方法(不明なコンテンツの回答を待っています)?
私のJavaアプリケーションは次のように動作する必要があります:
- ユーザーは GUI で bash コマンドを選択し、「送信」を押します。
- アプリケーションは、コマンドごとに個別の独立した回答を返します (たとえば、それらを別のファイルに保存できます)。
- コマンドはそれぞれ、バッチではなく対話的に実行されます (「ls\n pwd \n」などのようなものにはできません)
- 各コマンドの後、アプリケーションは待機し、結果が問題ないかどうかを確認します。その場合、次のコマンドを送信します。
- リモートホストで su を実行する必要があります。
私はExpectJを使用しました(出力ストリームを少しハックしました)。ポイント1、3、4、5を解決しました。
しかし、ポイント 2 には問題があります。私のアプリでは、個別の回答を得る必要があります。しかし、それらの長さはわかりません。コマンド プロンプトは異なる場合があります。誰かがExpectJを「ハック」する方法を知っているので、もう少し同期されますか? 私は次のように行動することを探しています:送信、完全な回答を待つ、送信、待機...基本的な同期のトリックをいくつか試しましたが、これはタイムアウトで終わり、通常は接続が失われます。
この質問は私の古い質問に関連しています:
jsch - expectj でパスワード プロンプトを処理する方法
「su root」コマンドをexpectj(実際にはjsch)経由で送信したいと思います。パスワードを要求します。expectj でそれを処理する方法はありますか?
java - Javaを使用して「対話」コマンドを期待する方法を実装する方法
javaを使用してexpect "interact"コマンドを実装したいと思います。予想通り、ssh セッションを開いて認証し、「interact」コマンドを使用して制御をユーザーに戻すことができます。それはJavaで可能ですか?私はexpectJ、expect4J、およびexpectForJavaを試しましたが、ドキュメントはほとんどなく、これを行う方法の例はほとんどありません. ティア。
更新: 「対話」コマンド リファレンスについては、これをチェックしてください: http://wiki.tcl.tk/3914
「Interact は、現在のプロセスの制御をユーザーに与える Expect コマンドです。そのため、キーストロークが現在のプロセスに送信され、現在のプロセスの stdout と stderr が返されます。」