ProGuard是一款免费的Java类文件的压缩、优化、混肴器。它可以帮你删除没用的类,字段,方法与属性,使字节码最大程度地优化,使用简短且无意义的名字来重命名类、字段和方法 。目前eclipse已经把Proguard集成在一起了,如果你需要单独使用ProGuard的话,可以下载本软件。
使用方法
1、准备好你的jar包,我在这里举例叫做test.jar。
2、解压proguard,执行 bin目录下的proguardgui.bat。

3、运行如图,点击左边“input/output” 菜单

4、点击右边的“add input” 加入我们要混的jar包,test.jar
点击右边的“add output” 填入我们要输出的jar包(命名随便),这里我写 test_out.jar。
注意输出的jar包,要自己手工填写。
5、添加支持库,下边的 “Library jars,wars,ears .....” 那个框框。点击右边的“add”。
说明一下,这里最好把你的myeclipse里java project里的libraries所有Library的jar包,copy到一个目录,然后在这里加入这些jar包,myeclipse的环境支持jar包一般

6、做完以上步骤后,应该如下图4,这样就差不多了

7、点击“shrinking” ,设置成如图5。(可根据需要设置,这里只是我的配置)

8、点击“obfuscation” ,设置如图6。(可根据需要设置,这里只是我的配置)

9、点击“optimization” 设置如图7。(可根据需要设置,这里只是我的配置)

10、点击“process”,再点击“save configuration”,在弹出的对话框中,输入要保存的配置文件名称(这里我的是test.pro),最后点击“保存”。如图8

至些图形化的设置部分已经完成。
11、最后,添加要保留的类与方法。
用编辑器编辑刚才保存下来的“test.pro”,用记事本什么都可以,打开后大致应该是以下的样子
-injars test.jar
-outjars test_out.jar
-libraryjars 'C:\Program Files
(x86)\Java\jdk1.6.0_10\jre\lib\rt.jar'
-libraryjars
lib\ant.jar
-libraryjars lib\aopalliance-1.0.jar
-libraryjars
lib\commons-dbcp-1.4.jar
-libraryjars
lib\commons-fileupload-1.2.1.jar
-libraryjars lib\commons-io-1.4.jar
.....设置的支持库包,略
-dontskipnonpubliclibraryclassmembers
-dontshrink
-useuniqueclassmembernames
-keeppackagenames
-keepattributes
Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod
-keepparameternames
-ignorewarnings
....我们在这里加入要保持的类和方法,写法如下,红色部分是我们加的
-keep class org.bl.soa.components.constant.* {
public
<fields>;
public <methods>;
*** set*(***);
***
get*();
}
-keep class org.bl.hibernate.* {
public <fields>;
public
<methods>;
*** set*(***);
*** get*();
}
.....继续加其他的要保留的类和方法,有多少写多少。我是把test.jar里的所有类都加进来。
....后面还一些自动生成的配置,不用管它们。
....略
12、写完后,保存。
重新打开progrard,执行 bin目录下的proguardgui.bat。
点击第一个选项“Proguard”,再点击“Load configuration”,选择我们刚才保存的“test.pro”进行加载。

13、开始混代码,点击右边“process”,再点击“process!”,如下图

14、在等待处理完成后,输出的“test_out.jar”,就是混过的jar包,你可以用xjad反编看下效果。
15、如果在处理过程中有问题,一般会有提示,大部分一般都是缺少关联类,如果少了相关类,在第7步的图,把缺少的支持包加进来就可以了。
使用注意
1、注意版本,如果不是项目需要,最好使用最新稳定版本,这样出错的机会小一些,学习曲线会明显缩短。
2、最好以源码的同编译版本的jvm来启动proguardgui.jar,不要直接用默认的jvm打开。
3、注意proguaardgui启动后默认加载的libraryjar中包含的rt.jar,它的版本和你使用到的jvm版本一致。
4、使用1.4的jvm打开proguard时,注意在optimization选项卡中,不要勾中keep enumerations选项,因为勾中这个选项会导致configration文件中出现java.lang.Enum,这个类只有在1.5的环境下才有。报错信息如下:
[proguard] Note: the configuration refers to the
unknown class 'java.lang.Enum'
[proguard] Note: there were 1 references to
unknown classes.
[proguard] You should check your configuration for
typos.
5、嵌入ant脚本时,通常会有这么一段
<target name="proguard"
depends="init">
<taskdef resource="proguard/ant/task.properties"
classpath="${lib.dir}/proguard/proguard.jar" />
<proguard
configuration="${src.dir}/config.pro"
/>
</target>
task.properties在proguard.jar中,保留,config.pro是proguard的配置文件,最好使用proguardgui.jar先生成,然后再根据需求手动修改。
常见问题
1、conversion to dalvik format failed with error 1
网上主要有这几种解决方案:
1、编辑eclipse项目下的.classpath文件,改为
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>即可
2、下载最新版本的proguard,替换android sdk下的tools\proguard(我用的就是这个方法解决的,我的android sdk是r20,其中带的proguard是4.7的,我把它更新到4.8后就好了)
3、将tools\proguard\bin\proguard.bat文件中的call %java_exe% -jar
"%PROGUARD_HOME%"\lib\proguard.jar %×替换为:
call %java_exe% -jar
"%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8
%9(我也试了这种方式,不过当时导致了另外一个错误"Expecting class path separator ';' before ... in
argument number 7")
- PC官方版
- 安卓官方手机版
- IOS官方手机版
















下载
下载
下载
下载 
下载
下载
下载
下载
uAPP Creator(安卓软件制作工具)1.0.1 官方版
Java SE Development Kit 8 (JDK)v8.0.341 官方版
x64dbg(程序逆向反汇编修改神器)2022.07.27 简体中文版
微信开发者工具小游戏版1.05.2204264 官方版
JetBrains DataGrip 2022 中文破解版221.5591.46 免费版
JetBrains CLion 2022 破解版221.5080.224 中文免费版
IntelliJ IDEA 2022.1 中文免费版221.5080.210 破解版
JetBrains PhpStorm 2022.1中文破解版221.5080.224 免费版
JetBrains Rider 2022.1.1 破解版221.5591.20 免费版
JetBrains RubyMine 2022.1 破解版221.5080.196 中文免费版
WebStorm2022破解版(WebStorm 2022.1)221.5080.193 免费版
goland2022破解版(GoLand 2022.1中文版)221.5080.224 免费版
pycharm2022破解版221.5080.212 中文免费版
python3.10.4官方版最新版
matlab r2022a中文破解版9.12.0 免费版
MATLAB R2019b破解版9.7.0.1190202 免费版
matlab r2020b 破解版免费版
scala语言开发工具2.13.2 官方版
julia开发环境1.7.0 免费版
rust开发环境1.56.1 官方版
aardio桌面软件开发工具35.7.5 绿色最新版
慧编程电脑版5.4.0 最新版
编程猫定制课3.3.0 官方版
精易编程助手3.98 绿色免费版
python3.8.5稳定版免费下载
ulang(木兰编程语言)0.2.2官方免费版
小码精灵编程电脑客户端1.12.0官方最新版
易语言5.9.0 免费版
KRobot编程工具0.8.5 官方64位版


JetBrains PhpStorm 2018免费版2018.3.6 x6
sublime text 33.3126 中文版64位下载
JetBrains CLion2021中文版2021.1.2 x64免费
JetBrains Rider 2021免费版2021.1.3 x64中
JetBrains WebStorm 2021免费版2021.1.1中文
儿童编程软件(Scratch)3.9 中文免费版
JetBrains GoLand 2018官方版2018.3.6 x64
APK改之理(APK ide)3.3 最新去广告版
eclipse helios版本(Eclipse IDE for Java
MyEclipse5.5.1破解版免费版【附注册机】