【问题标题】:How to include java.desktop module as a library jar in Proguard如何在 Proguard 中将 java.desktop 模块作为库 jar 包含在内
【发布时间】:2021-08-14 12:53:27
【问题描述】:

我使用 proguard 使用 proguard gradle 插件来混淆 Java 11(最新 LTS 版本)中的应用程序。这是当前的依赖。我想评论一下,由于与项目有关的其他原因,我必须使用 >= 7.1.0-beta3 的版本。但是这个问题与此无关。

 com.guardsquare:proguard-gradle:7.1.0-beta4

最近添加了对interface javax.swing.tree.TreeNode module 的依赖。 javax.swing.tree.TreeNode modulejava.desktop module 的一部分。

我使用以下代码以独立于 java 版本的方式包含 JDK 库。 关注proguard examples

        if (System.getProperty('java.version').startsWith('1.')) {
            libraryjars "${System.getProperty('java.home')}/lib/rt.jar"
        } else {
            libraryjars "${System.getProperty('java.home')}/jmods/java.base.jmod", jarfilter: '!**.jar', filter: '!module-info.class'
 }

但是我收到以下警告:

Warning: a.custom.CustomClass: can't find referenced class javax.swing.tree.TreeNode
Execution failed for task ':obfuscation_task'.
> java.io.IOException: Please correct the above warnings first.

proguard 需要什么才能“看到”javax.swing.tree.TreeNode class 作为库类?

【问题讨论】:

    标签: java swing gradle proguard obfuscation


    【解决方案1】:

    我在尝试向问题添加详细信息时找到了解决方案。

    错误的原因是从 Java 9 开始,您必须明确指定要添加哪些模块。问题中的代码只是添加了java.base 模块。要添加java.desktop 模块,应添加以下行:

        libraryjars "${System.getProperty('java.home')}/jmods/java.desktop.jmod", jarfilter: '!**.jar', filter: '!module-info.class'
    

    java 库包含的完整部分现在是:

        if (System.getProperty('java.version').startsWith('1.')) {
         
            libraryjars "${System.getProperty('java.home')}/lib/rt.jar"
        } else {
         
            libraryjars "${System.getProperty('java.home')}/jmods/java.base.jmod", jarfilter: '!**.jar', filter: '!module-info.class'
            libraryjars "${System.getProperty('java.home')}/jmods/java.desktop.jmod", jarfilter: '!**.jar', filter: '!module-info.class'
         
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-02
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多