jar-obfuscator icon indicating copy to clipboard operation
jar-obfuscator copied to clipboard

[BUG] JAVAFX 项目混淆问题

Open hadis91 opened this issue 1 year ago • 3 comments

加密jar后,执行jar包提示:错误: 找不到或无法加载主类。所运行的jar包是一个javafx GUI工具,该如何解决此问题呢?

hadis91 avatar May 21 '24 07:05 hadis91

具体问题,具体分析,我手头没有你的 jar 包所以不太好处理

之后我会尝试找一个 javafx 包分析下

目前排查和解决的话

第一个办法:手动启动主类

例如:混淆配置文件如果设置主类会输出混淆后的主类名

java -cp test.jar com.test.XXX

第二个办法:只混淆关键部分

某些 javafx 关键代码不能混淆 建议只混淆关键部分 设置哪些方法不应该混淆等

4ra1n avatar May 21 '24 13:05 4ra1n

谢谢回复,可否加个QQ,我把javafx包发你试试,QQ:1726899818 对于你说的方法,我明天试试

hadis91 avatar May 21 '24 13:05 hadis91

对于 JAVAFX 应用,给出一个推荐配置(尝试 0.0.3-beta 版本)

# 混淆字符配置
obfuscateChars: [ i, l, L, '1', I ]
# 混淆包名称 必须配置否则无法运行
# 建议仅设置关键部分不要设置范围过大
obfuscatePackage: [ cherry. ]
# 不对某些类做混淆(不混淆其中的所有内容)
# 例如反射调用/JAVAFX FXML绑定等情况
classBlackList: [ cherry.controller.CherryController ]
# 不对某些 method 名做混淆
methodBlackList: [ start.* ]

obfuscatePackage 是你要混淆的根包

cherry.controller.CherryController 是 javafx 里绑定的 controller 不能混淆

methodBlackList 对 main 类的 start 方法不能动,因为 javafx 的规范

效果:

image

4ra1n avatar May 23 '24 04:05 4ra1n