Java で ssh や scp を呼び出す(4) - JSch 編

JSch -- Java Secure Channel
http://www.jcraft.com/jsch/

id:n_shuyo:20060706:1152162198, id:n_shuyo:20060707:1152290107, id:n_shuyo:20060714:1152899236 で3回に分けて SSH2 の pure Java 実装の一つ Ganymed SSH-2 で scp & ssh やってみたメモを記したが、今回は JSch に手を出してみた。


JSch の特徴はこんな感じ。

  • 100% pure JavaSSH-2 実装
  • BSD style ライセンス
  • ssh, scp, sftp, ポートフォワード, などなど一通りサポート
  • ant タスク sshexec, scp に採用


Ganymed と比較してみる。

  • Ganymed はバージョンアップも止まっており、(良く言えば)枯れている。JSch は現在も更新されており、新しめの技術にも対応し続けている。
  • Ganymed はドキュメントが一通りそろっているが、JSch は JavaDoc すらない(サイトで公開されていないと言うだけではなく、ソースに JavaDoc 用のコメントが1行も書かれていない)。参考にすることができるのは、サンプルソースのみ。
  • Ganymed はある程度カプセル化されたインターフェース設計になっている。JSch は結構生のプロトコルそのままなインターフェースになっている(scpのサンプルソースが一目瞭然)


カプセル化は設計思想が入ってくるので、そこがあわないと使いづらくなる可能性があるが、個人的には Ganymed のカプセル化は好印象だった。


次回、実際のコードを書いてみる。