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. 通過選擇課程打開包裝?
- 9. EF:使用「選擇」投影創建包裝對象時,「包含」導航屬性
- 10. 選擇性呼叫寫封裝
- 11. jQuery的屬性包含選擇
- 12. 軌道上選擇屬性包括表
- 13. 「包容性或」內部jQuery選擇
- 14. Jquery屬性不包含選擇器
- 15. 屬性選擇包含jQuery的
- 16. 的Html敏捷包選擇子屬性
- 17. Rails Activerecord查詢選擇性包括
- 18. 包括選擇性或全球?
- 19. 屬性包含選擇*替代
- 20. 屬性包含選擇器到數組
- 21. SFINAE選擇性地包括成員
- 22. 的Ant jar任務 - 包括包裝但不包括子包
- 23. 如何在運行Ant的jar任務時櫻桃選擇包?
- 24. jQuery選擇選擇選擇性
- 25. JQuery選擇性選擇
- 26. 重新包裝使用Maven內置JAR
- 27. 包裝在獨特的jar與bouncyCastle.SecurityException
- 28. 把eclipse java項目包裝到jar中?
- 29. 將jar包裝到apk中與eclipse
- 30. Mac安裝包 - 如何選擇安裝到多個位置
純粹出於好奇,爲什麼尺寸很重要? (我碰巧在同一時間提出類似的問題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