项目中的jar包里面可能有 包名+类名 都相同的class,可能导致class加载出问题。
昨天有同事写了个脚本来实现查找重复jar包操作的功能,结果跑一次要20分钟。
汗!
问我为啥这么慢!一看,发现时间都耗在io操作上了(他把jar包解压缩后再做的其他操作)。
其实要看jar包里面的内容无需解压,unzip -l即可
写了个脚本,自己在eclipse插件的那个文件夹里面试了一下,还好。
总共697个jar文件,里面包含了85836个class文件,解析一次只需要10秒左右。
awk的数组效率还是挺高的。shell代码如下:
ls *jar|while read LINE; do unzip -l $LINE; done|awk '/.*\.class$/{a[$4]++}END{for(aa in a){if(a[aa]>1)print a[aa]" "aa}}'|sort -nrk1,1
(7月18号修改)同事要求记录jar包的文件名,回来想了一下,没有很好的办法,用2个数组解决了。
暂时没有想到更好的办法。
ls *jar|while read LINE; do unzip -l $LINE; done|awk '/.*\.class$|^Archive/{if($1=="Archive:"){f=$2};if($4!=""){c[$4]++;a[$4]=a[$4]" "f}}END{for(aa in a){if(c[aa]>1)print c[aa]" "aa" "a[aa]}}'|sort -nrk1,1
分享到:
相关推荐
shell查找指定名称的文件脚本,参数见脚本注释
XCODE代码去重复文件,运行代码后找大文件并删除。 查找之后会有个别问题,慎重
我的windows浏览器搜索功能坏了,这是用python写的控制台下的查找文件脚本
bat脚本写文件,通过批处理脚本写文件到指定目录
就是把DOS命令写在一个文本文件里面,然后保存的时候保存成"所有文件", 文件名是 名字.bat 就可以了。 不过BAT文件有很多特殊命令... 批处理制作教程 批处理文件是无格式的文本文件,它包含一条或多条命令。它的...
在开发过程中经常会员到在Linux环境中使用Shell脚本启动和停止java程序的情况,常用的java -jar命令只能运行jar文件,有很多不方便的地方,一旦代码修改就需要重新编辑打包,其实还有很多其他的方式,这个资源中包含...
WINCC中使用VBS脚本读写SQLServer数据库文件WINCC中使用VBS脚本读写SQLServer数据库文件WINCC中使用VBS脚本读写SQLServer数据库文件WINCC中使用VBS脚本读写SQLServer数据库文件
1、如果想合并多个文件可以参考merge文件夹下的merge.bat脚本编写。 2、hex2bin.exe的使用方法是:拖拽hex文件到其上面释放,自动在当前目录下生成同名bin文件(或者用批处理加参数即可)。
主要介绍了如何在python中写hive脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
linux服务器,springboot,spring cloud、spring cloud alibaba等项目启动脚本 下载脚本, 1,上传脚本至jar包同级目录 2,更改脚本: jar包名称 项目文件路径 日志路径(包含日志名称) 脚本已配置好jvm优化...
wincc中使用VBS脚本读写SQLServer数据库文件
今天分享一个一键批量替换文件内容的脚本给大家,我们通过脚本可以一键,批量修改和替换文本内容,只需要在配置文件中,设置好我们想要替换的内容,中间用空格隔开,bat脚本就会自动将我们设置的内容,一键批量替换...
使用vi命令创建一个脚本文件
运行后面跟jar包名即可
当出现多个springboot项目需要启动的时候,可以使用脚本启动的方式。这在springcloud项目的开发测试阶段尤为有用。以下展示启动脚本示例,过程中遇到的问题,以及相关的解决办法。 1、启动脚本 #!/bin/sh export ...
基于javaWeb的一个博客系统,实现的主要功能有游客的注册登陆修改信息在线发送留言以及回复留言等,含有数据库脚本文件。博主可以操作游客,对其信息的改删查等,另外界面很精美大方,可以下载一起学习学习
win系统下双击该脚本可以在当前目录生成1000个1kb大小的文件,文件大小和数量可以随意调节。适用于创造大量测试数据已达到性能测试的目的 批处理脚本是一种用于Windows操作系统的脚本语言,它可以用来自动化执行一...
lc文件脚本解密编辑器 14:18 2011-3-4更新说明 1.解决了会员服务解密后的错误代码 2.提高了打开文件速度,减少生成文件 3.增加另存为功能 4.解决了解密lc文件打开后是空白文件问题 5.增加了调试功能 6.增加了搜索和...
js脚本 删除项目中的.svn文件 一次删除所有的.svn 文件 很好的js脚本。
PADS常用脚本文件,包含1.根据PCB直接列出BOM 2.丝印位号居中 3.统计PCB焊盘过孔数 4.元件值居中