Q
选择性jar包装
3
A
回答
2
3
有proguard,与Ant和Maven插件。它删除未使用的代码,可选地混淆并压缩到单个jar。
Proguard的降低在两条战线上
- 仅实际使用被存储在最终罐的类尺寸。
- 长名称,例如所有长包名称,类名都被重新命名为更短的名称,节省了相当多的空间。
确定一个类是否在java中使用有点棘手。静态代码分析可以帮助您达到目标,但您需要通过反射访问一些小心的代码,因为该工具可能无法检测到该代码。它处理Class.forName(“xyzFoo”),但任何更复杂的事情,你需要将它添加到要包含的类的配置文件中,可以让一个类加载器生成一个在运行时使用的类的列表,所以这并不一定是艰巨的。
您可能也想调查pack200压缩方案,因为这也可以使jar的大小显着减小。
2
您可以尝试使用蚂蚁jar
task - 更多信息可以在这里阅读。
相关问题
- 1. 选择主包装
- 2. 套装属性在烬选项选择
- 3. 重新包装.jar文件
- 4. 使用NuGet软件包进行选择性安装
- 5. 通过选择课程打开包装?
- 6. (Python)在类中包装用户选择
- 7. jQuery选择不“包装”元素
- 8. EF:使用“选择”投影创建包装对象时,“包含”导航属性
- 9. 轨道上选择属性包括表
- 10. “包容性或”内部jQuery选择
- 11. Jquery属性不包含选择器
- 12. 属性包含选择器到数组
- 13. 的Ant jar任务 - 包括包装但不包括子包
- 14. 将jar包装到apk中与eclipse
- 15. 把eclipse java项目包装到jar中?
- 16. 包装在独特的jar与bouncyCastle.SecurityException
- 17. 选择要安装的软件包 - 安装按钮灰显
- 18. ProcessBuilder在包装jar上调用java -jar失败
- 19. PhpStorm包装特性
- 20. 列柔性包装
- 21. MVN安装JAR-与依赖性
- 22. 选择选项* *选择属性在铬
- 23. 等高度柱 - 柔性盒和柔性包装:包装
- 24. 的CSS属性选择,其中包含的属性名称:它
- 25. 选择属性与HTML敏捷性包值
- 26. OSX安装程序包:如何在安装程序中选择安装语言?
- 27. IntelliJ:包含.jar的属性文件无法通过包含的.jar找到
- 28. Maven项目包装是战争,而且建筑/安装JAR
- 29. 构建jar包含库jar
- 30. 春季启动 - 转换jar包的战争包装
纯粹出于好奇,为什么尺寸很重要? (我碰巧在同一时间提出类似的问题http://stackoverflow.com/questions/2888299/is-there-any-disadvantage-to-putting-api-code-into-a-jar-along-与类) – 2010-05-22 14:06:57
因为我的程序有几千字节,并且图书馆有几兆字节。 – 2010-05-22 15:43:21
您需要确定使用Class.forName(...) – 2010-05-22 20:01:13