微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

proguard 不会创建输出 jar

如何解决proguard 不会创建输出 jar

我在单个类文件上运行 proguard,但 output.jar 文件未创建

$ javap -c java-8-classes/BinaryNode.class | sed -n "139,150p;151q"
  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #2                  // Field _data:[B
       4: ifnonnull     11
       7: iconst_m1
       8: goto          16
      11: aload_0
      12: getfield      #2                  // Field _data:[B
      15: arraylength
      16: ireturn

所以除非我弄错了(?),看来 BinaryNode::hashCode 只需要 _data 字段。

$ javap -c java-8-classes/BinaryNode.class | sed -n "5,6p;7q"
  protected final byte[] _data;

所以我相应地编辑了我的 config.pro

$ cat config.pro
-injars java-8-classes/BinaryNode.class
-outjars output.jar
-verbose
-keep class com.fasterxml.jackson.databind.node.BinaryNode
{
    protected final byte[] _data;
    public int hashCode();
}
-allowaccessmodification

当我运行 proguard 时,输出 jar 不会被创建:

$ java -jar ../proguard/lib/proguard.jar -dontwarn @config.pro
ProGuard,version 7.1.0-beta2
Reading input...
Reading program directory [/home/oren/Documents/java-8-classes/BinaryNode.class] (filtered) # <---- OK??
Initializing...
<...>
Preparing output jar [/home/oren/Documents/output.jar] (filtered) # <---- WHY ???

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。