当前位置: 首页 > 工具软件 > RetroGuard > 使用案例 >

j2me obfuscator Proguard & retroguard

莫泓
2023-12-01
 

今天尝试了一下java的打包混淆,上网下载,试用了两个在j2me开发中最常用到的混淆器:ProGuard 和 RetroGuard.这两个混淆器都是开原免费的,但License上说如果用于商业用途也要求付费.窃以为在中国是肯定不会有人会付费给他们的了,估 计国外的除大公司以外也不会有人付钱了吧.
使用过程中有些问题是要注意的.
1.RetroGuard.先把RetroGuard集成到 WTK中:看网上介绍直接把Retroguard.zip 解压得到的jar文件丢到WTK/bin/目录中就可以在Ktoolbar中使用了.我试了,结果不行,提示是说找不到Proguard.原来WTK中默 认的混淆器是Proguard,要换用Retroguard,必须到WTK/wtklib/Windows(platform)下找到 ktools.properties文件,把其中的obfuscator.runner.class.name: com.sun.kvem.ktools.RunPro 改成:obfuscator.runner.class.name: com.sun.kvem.ktools.RunRetro
就可以了.在这个文件中还有一些关于混淆的选项配置,也可以按需要自己修改.
eclipseme也是默认只使用ProGuard的,可是我没有找到配置文件,捣鼓了半天没能把Retroguard集成到EclipseMe中去.是我的EclipseMe的版本不对?谁知道可以告诉我?

2.Proguard.这是WTK和EclipseMe的默认选择,集成很简单,WTK直接解压丢到目录WTK/bin中去就可以.EclipseMe则在preference中指定解压的文件夹就可以.但混淆打包中碰到两次errors.
第 一个是could not find jar tool executable,是因为在preference中指定的jre目录包含的文件不足,没有jar工具的程序.这一般是把jre指向到了装其他软件时附 带装上的jre了,所以里面缺少一些jar tool executable.把preference里jre指向一个jdk的jre就行了.
第 二个是errors preverifying jar d.b()Z....原来混淆后要打包成j2me应用之前还要先通过预审核,这是预审核阶段出错误了.原因可能有两个,一是类,属性,方法太多了,用完了 默认的a-z字符,开始使用A-Z字符,而windows不区分大小写,于是后面的标识符把前面的覆盖了,在使用混淆时加上参数:- dontusemixedcaseclassnames.二是,可能混淆器优化程序出了错误,可以禁止优化来解决,方法是加参数:- dontoptimize.
经常混淆打包完之后,混淆器会提示有duplicate definition problems,是因为混淆器查找classpath找到多个同名的类.暂时也没有影响我的开发.

 类似资料:

相关阅读

相关文章

相关问答