2017-02-27 9 views
0

私は49MBの大きさのライブラリを含んでいます。しかし、私はいくつかの機能しか使用していないので、ライブラリ全体が最終的なジャーに存在することは望ましくありません。私はプロガードを使いました。しかし、私はサイズを縮小することに成功していませんでした。瓶の大きさを小さくする方法

誰でも私に知っている正しいツールを教えてください。これは未使用のクラス/ jarを知的に削除することができます。

+0

は、なぜあなたはそれがどのように大きな気にしますか?このための機能を備えたmaven-shade-pluginの使用を検討してください。 – bmargulies

答えて

0

Java SE 5,6には、すでに「pack200」というパッキングツールが付属しています。このツールは既存のjarファイルを圧縮することができ、ネットワーク配布に使用することができます。

C:私は、次のコマンドを使用してrt.jarの圧縮\プログラム\ Javaの\ jdk1.6.0 \ JRE \ libに> pack200で-J-Xmx256m rt.jar.gz rt.jarの

旗を - そうでない場合にOutOfMemory例外が発生する可能性があるため、JX ...(pack200では、Javaで書かれている...)、必要とされている 結果は驚くべきもの:

起源サイズ:43.8メガバイト 圧縮サイズ:5.81メガバイト

開梱のためにツール "unpack200"を使用することができます。

ツールパック200は、ダウンロード時間を短縮するためにWebStartアプリケーションを配布する場合に特に便利です。すでによく知られているもう一つのサンプル、グラスフィッシュがあります。二、インストールの段階では、GlassFishのはのunpack200ツールを使用して内部のライブラリをアンパック...

フォント:http://www.adam-bien.com/roller/abien/entry/how_to_reduce_the_jar

0

あなたがMavenプロジェクトを持っている場合は、minimizeJarと呼ばれる構成を有していること、maven-shade-pluginを使用することができます。

あなたがして、アプリケーションのpackage相とmaven-shade-pluginminimizeJar設定オプションをバインドすることができます。

<project> 
    ... 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>3.0.0</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
         <minimizeJar>true</minimizeJar> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
    ... 
</project> 

参考:Selecting contents for Uber jar

関連する問題