java - 确定使用的库以减少 JAR 文件的大小

标签 java jar htmlunit

我在某些程序中使用 HtmlUnit,但我总是遇到这样的问题,即每当我使用它时,我都必须添加从 HtmlUnit 网站下载的所有文件(库),所以我得到的 jar 文件总是 10 MB。

这些是我添加的文件:

alt text

但是在我的大部分程序中我只包含这个:

import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.RefreshHandler;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.*;

我通常只使用 WebClient 和 HtmlElements(HtmlForm、HtmlTable 等),所以我觉得很奇怪,我需要所有这些。

我的问题是,如果我可以减少包含的库的数量,或者可能更好,我如何确定我包含的哪些库根本没有被使用。

最佳答案

您是否真的要检查所有添加的库的所有类是否需要?

恕我直言,这是一项针对程序的工作。一个流行的开源程序是 ProGuard .

一般来说,ProGuard 被称为混淆器(重命名类文件中的所有内容,因此很难理解反编译的类),但在使用参数 -dontobfuscate 时,它可以在没有混淆的情况下使用。此外,我建议您也使用 -dontoptimize 参数。

如果你在你的大 JAR 上运行 ProGuard,你会得到一个小得多的 JAR。

如果您有兴趣,我可以发布一个 ant 构建文件的一小部分,其中展示了如何配置和调用 ProGuard。

关于java - 确定使用的库以减少 JAR 文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4460757/

相关文章:

java - 将 JSON 值数组解析为 POJO

java - 从 Android 应用程序启动两个 Activity

java - 你把java中外部库的.jar文件放在哪里

java - Maven 插件创建可执行 jar 与未解压的依赖项 (jar with jars)

java - 检查 php 中的 jar 文件是否损坏?

java - HTMLUnit 不点击按钮

java - 与实体变量名称相关的 JPA/Hibernate 查询失败

java - 将 HashMap 的 ArrayList 转换为 GSON JsonArray

java - HtmlUnit - 将 HtmlPage 转换为 HTML 字符串?

java - 失败的 HttpStatusCodeException : 401 Unauthorized acess using HtmlUnit