0

sshで多くのことを行う Java プログラムを作成しています。

私のプログラムでは、リモート ホストで「listFiles()」などのメソッドを実行できる必要があります。また、Apache Commons io からいくつかのコマンドを実行できる必要があります (「FileUtils」クラスを使用しています)。JSch などのプログラムを見たことがありますが、ファイルの操作や転送に関して十分な柔軟性を備えたプログラムはありません。

誰かが私の問題に対する代替プログラムまたはアプローチを提案できますか?

4

1 に答える 1

0

逆に、JSch はファイル転送をサポートしています: http://www.jcraft.com/jsch/examples/ScpTo.java.html

リモート ホスト上のファイルの一覧表示に関しては、Apache Commons FileUtils を使用して Java コマンドを実行することはできません。あなたがしなければならないことは、リモートOSでコマンドをリモートで実行することです-コマンドラインsshを介してこれを行うのと同じです:

ssh remotehost ls /path/to/remote/dir

これは、JSch だけでなく、選択したすべての ssh ライブラリにほぼ当てはまります。

したがって、JSch に関しては、次のようになります (既に Jsch ssh セッションをセットアップして接続していると仮定します)。

ChannelExec channel= (ChannelExec) session.openChannel("exec");
channel.setCommand("ls /path/to/remote/dir");
InputStream in=channel.getInputStream();
channel.connect()
// read your ls-output from the input stream here
channel.disconnect()
于 2013-11-14T01:09:39.127 に答える