【问题标题】:error obfuscating JavaFX Application with proguard使用 proguard 混淆 JavaFX 应用程序时出错
【发布时间】:2019-12-27 18:18:44
【问题描述】:

我对 proguard 不是很熟悉,我想混淆一个 JavaFX 应用程序,我已经做到了,但是现在在对项目进行一些更改之后,事情就搞砸了。

这是我的 .pro 配置文件:

-injars       ../INJAR.jar 
-outjars      ../OUTJAR.jar 

-libraryjars  'rt.jar'
-libraryjars  'jce.jar'
-libraryjars  'jfxrt.jar'


-dontshrink
-dontoptimize
-flattenpackagehierarchy ''
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,*Annotation*,Synthetic,EnclosingMethod
-adaptresourcefilecontents **.fxml,**.properties,META-INF/MANIFEST.MF


-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers


-keep class javax.** { *; }
-keep class impl.** { *; }
-dontwarn impl.**

-keep class org.** { *; }
-dontwarn org.**


-keepclasseswithmembers public class main.Main {
    public static void main(java.lang.String[]);
}

-keepclassmembernames class * {
    @javafx.fxml.FXML *;
}

-keepclassmembernames class main.*Controller {
    public <methods>;
    public <fields>;    
}

-keepclassmembernames class main.NewApplicationController$Applicant {
    public <methods>;
    public <fields>;
}

-keepclassmembernames class main.RDVTaker {
    public <methods>;
}


-obfuscationdictionary members.txt
-classobfuscationdictionary classes.txt
-printmapping mapping.txt

通过执行命令: java -jar obf_data/proguard.jar @obf_data/myconfig.pro &gt; obf_data/info.txt

我得到这个错误:

Error: Unexpected error while writing class [oshi/hardware/platform/mac/MacDisks] (Overflow of unsigned short value [70168])

我通过删除 -dontshrink 选项绕过了上述错误,但在这种情况下,生成的 jar 会引发以下错误:Error: Invalid or corrupt jarfile OUTJAR.jar

通过同时删除 -dontshrink-dontoptimize 会引发另一个错误,会打印一个 stacktarce,但我发现该错误是在此堆栈级别描述的:

Caused by: javafx.fxml.LoadException:
file:/C:/Users/younes/IdeaProjects/vpro/out/artifacts/vpro/OUTJAR.jar.
jar!/main/main.fxml:12

我想知道是否有人有一个假设、想法或什至另一个混淆工具,

提前致谢

【问题讨论】:

  • 仔细考虑混淆是否真的值得它给你带来的麻烦和痛苦,如果不是,不要混淆。
  • 我正在分发一个程序,它的代码至少应该受到混淆的保护

标签: java javafx proguard obfuscation executable-jar


【解决方案1】:

您所有的 FXML 文件名都应以大写开头,因此您需要更新您的字典。

【讨论】:

    猜你喜欢
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多