目前,我尝试使用Proguard来混淆java代码
在现有代码中,代码是在订阅内部实现的,但经过混淆后,代码消失了。
origin source
======================
Jedis jedis = new Jedis("test_host", 9999);
jedis.subscribe(new JedisPubSub() {
@Override
public void onMessage(String channel, String message) {
// do something job ..
System.out.println(String.format("channel : %s, message : %s", channel, message));
}
},"test channel");
obfuscation after
======================
this.c.subscribe((JedisPubSub)new Object(this, jsonParser), new String[] { "test channel" });
我尝试更改Proguard选项。
-keep public class redis.clients.jedis.JedisPubSub
-keep, allowobfuscation class redis.clients.jedis.JedisPubSub
etc ....
如何保持原始格式??
我的问题解决了
为什么我只添加了jar ${java_home}/jre/lib/rt.jar
-libraryjars ${my_java_home}/jre/lib/rt.jar
经过多次尝试,我意识到我需要jedi .jar和其他jar。
所以我添加了
-libraryjars ${my_java_home}/jre/lib/rt.jar
-libraryjars ${my_jedis_jar_path}/jedis-3.0.1.jar
...
...