代码之家  ›  专栏  ›  技术社区  ›  Łukasz Lew

选择性罐包装

  •  3
  • Łukasz Lew  · 技术社区  · 16 年前

    我有我的小程序.jar用了一小部分图书馆.jar.

    有没有一个工具可以将几个jar重新打包成一个,这样它就可以独立运行并且尽可能小?

    更新:

    3 回复  |  直到 16 年前
        1
  •  3
  •   mdma    16 年前

    proguard ,包含ant和maven插件。它删除未使用的代码,可以选择模糊处理并压缩到单个jar。

    Proguard在两个方面缩小了尺寸

    1. 只有实际使用的类存储在最终的jar中。
    2. 长名称,例如所有的长包名、类名,都被重命名为更短的名称,从而节省了不少空间。

    确定一个类是否在java中使用有点棘手。静态代码分析可以让您走到目前为止,但是您需要对通过反射访问的代码小心一点,因为工具可能无法检测到这一点。它可以处理类forName(“x.y.z.Foo”)但任何更复杂的情况,您需要将其添加到类的配置文件中以包含,则可以让类加载器生成运行时使用的类的列表,因此这不必很费力。

    你可能还想调查 pack200 压缩方案,因为这样也可以大大减小jar的大小。

        2
  •  2
  •   Sean Patrick Floyd    16 年前
        3
  •  2
  •   martin clayton egrunin    15 年前

    你可以试着用蚂蚁 jar task -更多信息可以在这里阅读。

    推荐文章