【问题标题】:How to know which classes inside a .jar file are referenced?如何知道 .jar 文件中的哪些类被引用?
【发布时间】:2009-05-02 18:06:05
【问题描述】:

我只需要在非常有限的环境中部署引用的类,如交互式电视的A data carousel。带宽昂贵,不支持 .jar 文件。

【问题讨论】:

    标签: java class


    【解决方案1】:

    查看ProGuard,这是一个混淆器,它将列出未使用的代码和类。混淆本身通常会导致更小的足迹。

    ProGuard 是一个免费的 Java 类文件收缩器、优化器、混淆器和预验证器。它检测并删除未使用的类、字段、方法和属性。它优化字节码并删除未使用的指令。它使用简短的无意义名称重命名剩余的类、字段和方法。最后对处理后的代码进行Java 6或Java Micro Edition的预验证。

    【讨论】:

    • 需要注意的一点是,ProGuard 无法处理您只能通过反射访问的任何类。如果有的话,你需要将它们添加到一个特殊的列表中(不记得确切的细节)。
    【解决方案2】:

    听起来你需要一个依赖分析器。 This one 可能会成功。

    ProGuard 可能会更好,因为它还可以缩小现有的 .class 文件。

    【讨论】:

    • 别再偷我的帖子了 :)
    • 我很抱歉,但在我完成编辑之前,我什至不知道其他人发过帖子。 :)
    • +1 对于 ProGuard - 它会完成这项工作,删除未使用的类和方法,并输出一个新的 JAR 并删除未使用的代码,以启动。
    【解决方案3】:

    也许您可以加载一个支持 jar 文件或理想情况下 pack200 个文件的自定义类加载器。

    【讨论】:

    • pack200 在提取时相当耗费资源
    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    相关资源
    最近更新 更多