gpt4 book ai didi

java - 使用 proguard 混淆 JavaFX 应用程序时出错

转载 作者:行者123 更新时间:2023-12-01 19:08:34 26 4
gpt4 key购买 nike

我对 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 > obf_data/info.txt

我得到这个错误:

错误:写入类 [oshi/hardware/platform/mac/MacDisks] 时出现意外错误(无符号短值溢出 [70168])

我通过删除 -dontshrink 选项绕过了上述错误,但在这种情况下,生成的 jar 会引发以下错误:错误:无效或损坏的 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

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

提前致谢

最佳答案

由于某种原因,该文件没有出现在 OUT 文件中,我通过手动将其注入(inject)到 jar zip 中来解决这个问题。 Proguard 的一些标志可能有助于保留文件。

关于java - 使用 proguard 混淆 JavaFX 应用程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59504597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com