通过loosejar清理应用中冗余的jar包
随着应用规模的逐渐增大,依赖的jar包数量也大幅添加。当中不乏多余的,用不到的jar包,占用了大量的宝贵空间。通过loosejar这个工具。便可轻松找到“滥竽充数”的jar包了~
loosejar的工作原理是利用classloader。由于应用在执行的时候,用到哪个类,classloader就会把这个类的.class文件载入到jvm中,然后生成一个class对象。然后再利用反射就能够执行这个类的方法了,因此有哪些.class文件被载入了,classloader是一清二楚,利用这个特性,便可知道jar包中类的实际使用情况,以及应用中jar包的实际使用情况了。
第一步:将loosejar.jar放到应用的WEB-INF下的lib中,比方说路径是
D:/workspaces/appnotify/WebRoot/WEB-INF/lib/loosejar.jar
第二步:在IDE中的installedJRES里面的JDK处配置-Dfile.encoding=uft8
-javaagent:D:/workspaces/appnotify/WebRoot/WEB-INF/lib/loosejar.jar
第三步:启动应用。尽可能做到路径全覆盖来測试你的应用,尽可能让每段代码都执
行。
第四步:在安装JDK路径下。bin目录中的jconsole,选择bootstrap的那个port,然
后选择MBean下的com.googlecode.loosejar 点击summary,就可以查看到分析结果了~
通过loosejar清理应用中冗余的jar包的更多相关文章
- 只要项目是maven构建的,pom.xml中依赖的jar包全都默认去你电脑本地仓库去找
只要项目是maven构建的,pom.xml中依赖的jar包全都默认去你电脑本地仓库去找
- 【转】Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法)
原文网址:http://www.blogjava.net/anchor110/articles/355699.html 1.在工程下新建lib文件夹,将需要的第三方包拷贝进来.2.将引用的第三方包,添 ...
- Eclipse 将projectBuild Path中引用的jar包自己主动复制到WEB-INF下的lib目录下
在用用 Eclipse进行Java Web开发时,web应用中引用的jar须要复制到WEB-INF下的lib目录下,否则常常出现ClassNotFound异常. 通过以下方法,能够不用手动拷贝jar包 ...
- 关于如何正确地在android项目中添加第三方jar包
在android项目中添加第三方jar包虽然不是一个很复杂的问题,但是确实给很多开发者带来了不小的困扰.我自己就曾经碰到过calss not found exception.error inflati ...
- java将类和函数封装成jar,然后在别的项目中使用这个jar包
本来想用idea安装的,不过用maven生成后发现jar有20,30M肯定不对,后来还是用eclipse生成了,方便很多 环境: eclipse luna,jdk1.8_112 1.生成jar包,首先 ...
- (转)如何在maven的pom.xml中添加本地jar包
1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下所示: 1 groupId 2 artifactId 3 version 4 jar包的依赖 如果要将 ...
- java中最常用jar包的用途说明
java中最常用jar包的用途说明,适合初学者 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实 ...
- (转)如何在maven的pom.xml中添加本地jar包
转载自: https://www.cnblogs.com/lixuwu/p/5855031.html 1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下 ...
- eclipse中maven项目jar包不会自动下载解决办法
Eclipse中maven从远程仓库中下载jar包有时会很慢,有些甚至进度停止不动,这个时候我们可能会终止当前下载,但是终止jar包下载后会出现一个问题,再次打开Eclipse时,你会发现提示你项目中 ...
随机推荐
- IMP-00058 ORA-12638:身份证明检索失败
需要将oracle的tns关掉 1.打开 oracle 的Net Manage 地址:开始 -> 程序 -> Oracle -> Configuration and Migratio ...
- JS——event
触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息: 普通浏览器支持 event(传参),IE678支持 window.event(无参),兼容写法: < ...
- HashTable, HashSet, HashMap的区别
HashTable, HashSet, HashMap的区别 hash是一种很常见也很重要的数据结构,是用hash函数根据键值(key)计算出存储地址,以便直接访问.由完美hash函数(即键值 ...
- Android中ViewPager动态创建的ImageView铺满屏幕
ImageView imageView=new ImageView(context); imageView.setScaleType(ScaleType.FIT_XY);//铺满屏幕
- 【LaTeX】对xelatex的中英文设置不同的字体
不建议用Ctex套装,不好用. 用MixTex+TexStudio! XeTeX处理中文非常方便,不需要任何设置,就能够使用系统中安装的TrueType和OpenType字体. MikTeX2.7中已 ...
- WebAPI PUT,DELETE请求404
- python 将中文转拼音后填充到url做参数并写入excel
闲着没事写了个小工具,将中文转拼音后填充到url做参数并写如excel 一.先看下演示,是个什么东西 二.代码 代码用到一个中文转拼音的库,库是网上下的,稍微做了下修改,已经找不原来下载的地址了,然后 ...
- HashMap中capacity、loadFactor、threshold、size等概念的解释
约定 约定前面的数组结构的每一个格格称为桶 约定桶后面存放的每一个数据称为bin bin这个术语来自于JDK 1.8的HashMap注释. size size表示HashMap中存放KV的数量(为链表 ...
- if判断,while循环,for循环
if判断 if判断其实就是让计算机模拟人的判断 if if 条件: 代码1 代码2 代码3 ... # 代码块(同一缩进级别的代码,例如代码1.代码2和代码3是相同缩进的代码,这三个代码组合在一起就是 ...
- accmcolor
accmcolor c; c.setcolorindex(1); playertablerecord.setcolor(c);