打包Jar包,混淆Jar包,合并多个Jar包
2016-09-09 18:36
363 查看
1.将程序打包成Jar包
右击工程------Export------Java-JAR File
![](https://img-blog.csdn.net/20160909174046795?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Next-----选中需要生成Jar包的项目,点击展开,只选择src(注意不是全选)----下面JARfile是生成的Jar包,自己设置就行。
![](https://img-blog.csdn.net/20160909174143434?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
一路Next,Finish生成OK。
![](https://img-blog.csdn.net/20160909174357093?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.Jar包混淆,找到SDK,tools目录下,打开Proguard---bin,打开proguardgui.bat,显示图像界面,(Mac下sdk是个proguardgui.sh,直接在命令行切换到当前目录运行该脚本就行sh proguardgui.sh )
![](https://img-blog.csdn.net/20160909174547877?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
下图是打开的ProGuard界面,下面我们进行一些设置。
![](https://img-blog.csdn.net/20160909174845521?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
点击左边的第二个Input/output,进入如下页面。
Add Input :选中你需要混淆的Jar包,比如我们的test.jar
Add Output: 这个是生成的Jar包,可以自己随便命名
下面Library jar添加需要注意:
添加sdk下的android版本,注意和你工程项目的一致,要不会报错
添加你工程里的其他jar包,如果没有用到,那就不用添加。具体的看下图2,3
![](https://img-blog.csdn.net/20160909180140118?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160909180618328?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
上面是我们Jar生成时的工程文件信息,我们用的是6.0,23,所以在Add Library时就要选择android-23,且记,这是坑。
下图是工程所用的Jar包文件,也得以此添加到Library中。
![](https://img-blog.csdn.net/20160909180636531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
设置好后next,进入Shrinking,一定要去掉勾号,要不都是泪啊。其他的保持默认,Next....
![](https://img-blog.csdn.net/20160909180121164?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
进入Obfuscation,注意这个就是设置哪些类不被混淆,哪些变量不被混淆。
![](https://img-blog.csdn.net/20160909181019449?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
点击Add,添加不需要被混淆的类,弹出下面的窗体,class下就是输入不被混淆的类,Add filed就是添加不被混淆的变量,Add method是不被混淆的方法名,直接添加就行。
![](https://img-blog.csdn.net/20160909181147116?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
然后一路next,保持默认的,到process,点击process,等待一会,就生成了。得到的就是我们需要的混淆后的Jar包,可以根据反编译工具查看。
关于反编译可以查看这篇文章点击打开链接
![](https://img-blog.csdn.net/20160909181623498?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
至此,生成Jar包和混淆Jar包都已完成,那现在还有个小需求,程序中引用的第三方Jar包太多了,想混成一个咋办,别急,这么搞:
3.合并多个Jar包
原理:解压Jar包,得到.class文件,然后合并就ok了
过程:
1.将你项目中所有的Jar包拷贝到一个文件夹下(你自己新建的)
2.cd到该文件夹下
3.执行命令解压该文件夹下的Jar包
jar -xvf test.jar
回车
jar -xvf tools1.jar
回车
jar -xvf tools2.jar
回车
注意:需要一个一个逐个解压
4.输入
5. 输入
这个all.jar就是最后生成的所有Jar的合并。
好,如有问题,欢迎讨论。
资料链接:点击打开链接
右击工程------Export------Java-JAR File
Next-----选中需要生成Jar包的项目,点击展开,只选择src(注意不是全选)----下面JARfile是生成的Jar包,自己设置就行。
一路Next,Finish生成OK。
2.Jar包混淆,找到SDK,tools目录下,打开Proguard---bin,打开proguardgui.bat,显示图像界面,(Mac下sdk是个proguardgui.sh,直接在命令行切换到当前目录运行该脚本就行sh proguardgui.sh )
下图是打开的ProGuard界面,下面我们进行一些设置。
点击左边的第二个Input/output,进入如下页面。
Add Input :选中你需要混淆的Jar包,比如我们的test.jar
Add Output: 这个是生成的Jar包,可以自己随便命名
下面Library jar添加需要注意:
添加sdk下的android版本,注意和你工程项目的一致,要不会报错
添加你工程里的其他jar包,如果没有用到,那就不用添加。具体的看下图2,3
上面是我们Jar生成时的工程文件信息,我们用的是6.0,23,所以在Add Library时就要选择android-23,且记,这是坑。
下图是工程所用的Jar包文件,也得以此添加到Library中。
设置好后next,进入Shrinking,一定要去掉勾号,要不都是泪啊。其他的保持默认,Next....
进入Obfuscation,注意这个就是设置哪些类不被混淆,哪些变量不被混淆。
点击Add,添加不需要被混淆的类,弹出下面的窗体,class下就是输入不被混淆的类,Add filed就是添加不被混淆的变量,Add method是不被混淆的方法名,直接添加就行。
然后一路next,保持默认的,到process,点击process,等待一会,就生成了。得到的就是我们需要的混淆后的Jar包,可以根据反编译工具查看。
关于反编译可以查看这篇文章点击打开链接
至此,生成Jar包和混淆Jar包都已完成,那现在还有个小需求,程序中引用的第三方Jar包太多了,想混成一个咋办,别急,这么搞:
3.合并多个Jar包
原理:解压Jar包,得到.class文件,然后合并就ok了
过程:
1.将你项目中所有的Jar包拷贝到一个文件夹下(你自己新建的)
2.cd到该文件夹下
3.执行命令解压该文件夹下的Jar包
jar -xvf test.jar
回车
jar -xvf tools1.jar
回车
jar -xvf tools2.jar
回车
注意:需要一个一个逐个解压
4.输入
del /F *.jar
5. 输入
jar -cvfm all.jar
这个all.jar就是最后生成的所有Jar的合并。
好,如有问题,欢迎讨论。
资料链接:点击打开链接
相关文章推荐
- Java开发、网络爬虫、自然语言处理、数据挖掘简介
- CSS选择器
- volatile与synchronized的区别
- 2-1 Point类的定义
- Android中RxJava详解
- JavaScript的DOM 编程 设置select标签的二级城市联动
- error MSB6006: “rc.exe”已退出,代码为 5
- 爬虫
- CCF 201409-1 相邻数对
- 大学生职业规划书
- React笔记
- 随笔0002 软工实践课程目标
- js浮点数计算问题 + 金额大写转换
- POJ3259 Wormholes(spfa判断负环模板题)
- AJAX 事件编程和对象定义和使用
- Backbone入门基础 - 路由
- Spring+SpringMVC+Mybatis+Mysql整合实例【转】
- 一个软件开发者的解决问题的心得——善于利用蛛丝马迹
- HTML5原生拖放实例分析
- Captureing ‘self’ strongly in this block is likely to lead to a retain cycle 的 警告