2

7-Zip の作成者が提供するネイティブのJava LZMA SDKは動作しますが、私のニーズに対して十分な速度ではありません。高レベルの実装は、アルゴリズムが必要とする低レベルの作業を処理できないようです。

7-Zip に同梱されている C++ dll にJNIカバーを実装する7-Zip-JBindingを見つけました。これは妥当な速度で解凍を処理しますが、ベータ版であり、現在圧縮をサポートしていません。

とにかく、私の質問は2つの部分です:

  1. 高速な Java 実装には DLL ラッパーが最善の策であるという私の仮定はありますか?
  2. もしそうなら、私が見るべき既存のプロジェクトはありますか、それともゼロから何かを書かなければなりませんか?
4

2 に答える 2

0

それはあなたにとって選択肢ではないかもしれませんが、私は ProcessBuilder を使用して外部 7z プロセスを実行するだけで素晴らしい成功を収めました。LZMA2 を使用して圧縮レベルを下げると、圧縮時間も劇的に短縮されました。もちろん携帯性の問題もあります。

XZ for Javaをチェックしてみてください。XZ は LZMA2 圧縮を使用しますが、Unix 環境により適した別の形式を使用します。最新の 7zip は .XZ アーカイブを抽出できるはずです。

于 2014-08-20T19:46:01.563 に答える