这两天在弄个J2ME相关的东西,下载了一个诺基亚的WTK2.5.2,也安装了Eclipse的J2me插件:eclipseme .
这些都很顺利,但当用建立J2ME 项目后,并,调用此插件的Export Antenna Build Files 时,将生成Ant 相关的配置文件:包括build.xml 和eclipse-build.xml.
文件eclipse-build.xml 中有一段:
<wtkobfuscate jadfile="${path.build.output}/${midlet.name}.jad" jarfile="${path.build.output}/${midlet.name}.jar"> <argument value="'-keep public class * extends javax.microedition.midlet.MIDlet'"/> <argument value="-dontusemixedcaseclassnames -dontnote -defaultpackage ''"/> </wtkobfuscate>
这是混淆相关的配置,如果你不需要,直接注释掉就可以了,但是如果你不想你的代码被轻松的破解,那么就需要这一小段,但这个诺基亚的默认WTK好像没有安装关于混淆器的东西,所以当我们直接运行这个Ant build 你的项目是会报出一个错误:
BUILD FAILED E:\j2me\HelloWorld\eclipseme-build.xml:42: The following error occurred while executing this line: E:\j2me\HelloWorld\eclipseme-build.xml:62: The following error occurred while executing this line: E:\j2me\HelloWorld\eclipseme-build.xml:65: No obfuscator found in WTK bin directory, CLASSPATH, or properties.
所以需要我们自己下载一个:
proguard ,解压后,把proguard.jar文件直接放入 WTK_HOME/bin 目录,就一切ok了。
当然你也可以选用其他类似的混淆器,例如retroguard