不做JavaME的Java程序员一般可能不会去对自己的class文件做混淆处理。做JavaME的大部分都知道Proguard、RetroGuard等用于obfuscate的工具。去年我的Ant Build Script中就已经添加了对于Proguard的支持,不过这次为了做WB2这个游戏,又有几个地方需要调整。 1) 类太多,足足有接近30个class file。 这对于ME程序而言,太多了。Proguard又不太争气,我只好找了以前做Flynn时候用过的JAX再压榨一下。JAX是IBM很早以前在alphaWork上发布的一个混淆器,后来被集成到了WSDD (Websphere Device Developer)中,作为SmartLink组件,就再也没法下到了。 我手头用的JAX版本6.3只能支持JDK1.2 -_-||| 没办法,尝试了诸多方法之后,勉强还是可以用。以下命令可以执行JAX以GUI方式启动: # java -classpath $JAX_HOME/jax63.zip com.ibm.jax.GUI 不过Ant集成的task最好还是在命令行里运行,简洁又清爽: # java -classpath $JAX_HOME/jax63.zip com.ibm.jax.Batch 后来有个朋友给了我一个私房版本,是用JDK5.0重新编译过的JAX,不用替换JVM就能运行,而且META-INF里面也制定了MainClass为Batch,真棒! 折腾了足足两个钟头之后,将JAX加入了ant build: <target name="merge" if="flag.should.jaxmerge" description="Try to merge some classes using JAX"> <java jar="${lib}/${jax.jar}" fork="true"> <arg value="lib/${jax.conf}" /> </java> <delete dir="${classes}"/> <mkdir dir="...