当java工程代码越来越复杂或者删除了工程中的一些代码只保留部分功能时,你的工程中就可能会存在一些用不到的jar包。这就会给你的打包工作带来不便,所以这里提供了一种删除工程(java工程、web工程)中多余jar包的方法,具体如下:
1.下载loosejar.jar文件;
- https://github.com/kyrill007/loosejar/releases ;
- https://code.google.com/archive/p/loosejar/downloads ;
2.将下载好的loosejar-1.1.0.jar文件,放到工程的WEB-INF下的lib中,我这里的路径是C:\Users\iwwenbo\Workspace\bomcweb\WebRoot\WEB-INF\lib
;
3.在你的IDE里指定运行参数:-javaagent:C:/Users/Workspace/bomcweb/WebRoot/WEB-INF/lib/loosejar-1.1.0.jar(需要替换为你的路径),我用的是Intellij IDEA ,操作如下:
4.启动应用,尽可能的让每段代码都执行一遍;
5.运行jconsole,选择bootstrap对应的端口,连接;
6.在连接后的窗口中,选择MBean下的com.googlecode.loosejar,点击summary,即可查看到分析结果了;
7.在分析结果中,类似于下面情形的jar包就是没有加载任何class的jar包就是没用的的多余jar包:
Jar: C:\Users\iwwenbo\Workspace\bomcweb\out\artifacts\bomcweb_war_exploded\WEB-INF\lib\commons-beanutils-1.8.3.jar
Utilization: 0.00% - loaded 0 of 137 classes.
注意:虽然这样删除的是没有被引用的jar包,但是可能有些jar包是动态运行过程中加载的,比如数据类型转换类的,只有加载数据时才会用到,所以我们暂时把这些jar包移到其他目录,这些jar包很可能都是import的,所以启动应用时应该会提醒,我们需要多测试才能保证jar包是去掉的真正不需要的。
参考原文通过loosejar清理应用中冗余的jar包,并有所补充修改。
最新评论
网飞没问题, 迪士尼+有解决方案么?
pp助手是安卓手机用的,根本下载用不来苹果
已解决
这样的话数据库里的结构为{"attachment":{"content":"xxx"}}, 要怎么才能变成{"content":"xxx"},从而使结构保持一致?
赞! make test不过的坑都写到的,谢谢楼主~
谢谢你
用了root用户还是一直502是怎么回事呢
student id 是空的