我试图学习如何使用ProGuard,这并不像我想象的那么容易.起初我发现了一个简单的Java代码来尝试它,一个简单的两类Swing计算器.
可以通过以下链接找到代码,但我发现在这里发布它太冗长了.无论如何,它是一个带入口点的普通应用程序,Calc.main()没有包.
然后我编译了两个来源:
$ javac *.java
Run Code Online (Sandbox Code Playgroud)
并创建了该.jar文件(因为看起来ProGuard只适用于jar):
$ jar cvef Calc calc.jar *.class
added manifest
adding: Calc.class(in = 3869) (out= 2126)(deflated 45%)
adding: Calc$ClearListener.class(in = 468) (out= 327)(deflated 30%)
adding: CalcLogic.class(in = 1004) (out= 515)(deflated 48%)
adding: Calc$NumListener.class(in = 1005) (out= 598)(deflated 40%)
adding: Calc$OpListener.class(in = 1788) (out= 1005)(deflated 43%)
Run Code Online (Sandbox Code Playgroud)
写了名为的ProGuard文件obfuscate.pro:
-injars calc.jar
-outjars calc_obf.jar
-libraryjars <java.home>/lib/rt.jar
-keep public class Calc extends javax.swing.JFrame {
public static void main(java.lang.String[]);
}
Run Code Online (Sandbox Code Playgroud)
最后运行ProGuard: …