web-dev-qa-db-ja.com

jarファイルのサイズを減らす方法は?

Jarファイルのサイズを小さくする方法がわかりません。 Java Swing jar fileが作成されたときに、jarファイルのサイズを小さくする方法はありますか?含まれている画像やその他のものをそのまま削除することはできません。必要。

私はjarファイルを解凍して、不要なものを削除しようとしました。大学のプロジェクトのポータルにアップロードする必要があるため、jarファイルのサイズを小さくしたかったのですが、アップロードする最大サイズは1 MBです。

3
Rick

Jar(およびwarとear)は、その下に特定のディレクトリとファイル構造を持つ.Zipアーカイブです。

圧縮されているため、内容をさらに圧縮する唯一の方法は、内容を削除することです。これは重複排除の形式である可能性があります(以前は、同じ展開にパッケージ化されたクラスとクライアントの重複があった展開に対処しました-確かに、展開構造で展開されたものです)、またはリソースを他のサービス。

画像は既に圧縮されている傾向があるため、圧縮されたアーカイブ(.jarなど)では圧縮が不十分です。画像が.jarを大きくし過ぎている場合は、それらを削除するか、小さい画像に置き換える必要があります(画像の複雑さを圧縮率の高いものに変更します)。

「大学のプロジェクトのポータルにアップロードする必要があるため、jarファイルのサイズを小さくしたかった」場合、あなたの頼みはおそらく割り当てを与える人々と話すことです。画像を小さくしたり、.jarから削除したりできない場合、.jarを小さくすることはできません。

2
user40980

.jarファイルのサイズを減らす方法は実際には複数あります。一部のコンテンツをドロップせずに.jarファイルのサイズを減らす必要がある場合は、次の2つの自動ツールを試すことをお勧めします。

圧縮

おそらく、最も簡単な方法は、Java SDKで配布される標準のjarとは異なるツールを使用して.jarファイルを作成することです。 [〜#〜] kzip [〜#〜] はそのようなツールの1つであり、圧縮効率に関して私が遭遇した中で最高のツールです。

難読化ツール

Proguard などの難読化ツールを使用すると、jarファイルのサイズを大幅に削減できることがよくあります。アプリケーションをリバースエンジニアリングするのが困難になるだけでなく、通常、機能に影響を与えずにバイトコードを小さくする方法でバイトコードを操作できます。これには、未使用のコードの削除やシンボルの名前の変更などが含まれますが、これらに限定されません。

Jarのサイズを小さくする方法は他にもあります(たとえば、非圧縮のpng画像を使用してjarの圧縮率を上げる)。

6
msell

Jarファイルのサイズを小さくする方法はありますが、プロジェクトオブジェクトマネージャー(pom.xmlまたはgradle.build)に依存関係を最適に適用する方法があります。

  1. 必要な依存関係のみを使用します。
  2. テストの依存関係がある場合は、それらをテスト範囲に含めます。
1
Chandan Gawri