由于jar命令去查找class文件速度比较慢,我个人尝试使用7z.exe,7z.dll,结合批处理,效果非常不错。

请看示例:

for %i in (dir/b/s *.jar) do 7z l %i | findstr XDatabase.class

结果:

  1. D:\shared\xsql>for %i in (dir/b/s *.jar) do 7z l %i |findstr XDatabase.class
  2. D:\shared\xsql>7z l dir/b/s   | findstr XDatabase.class
  3. D:\shared\xsql>7z l db2jcc.jar   | findstr XDatabase.class
  4. D:\shared\xsql>7z l db2jcc_license_cu.jar   | findstr XDatabase.class
  5. D:\shared\xsql>7z l jconn3.jar   | findstr XDatabase.class
  6. D:\shared\xsql>7z l jodbc.jar   | findstr XDatabase.class
  7. D:\shared\xsql>7z l jTDS3.jar   | findstr XDatabase.class
  8. D:\shared\xsql>7z l mlscript.jar   | findstr XDatabase.class
  9. D:\shared\xsql>7z l msbase.jar   | findstr XDatabase.class
  10. D:\shared\xsql>7z l mssqlserver.jar   | findstr XDatabase.class
  11. D:\shared\xsql>7z l msutil.jar   | findstr XDatabase.class
  12. D:\shared\xsql>7z l mysql-connector-java-5.1.6-bin.jar   | findstr XDatabase.class
  13. D:\shared\xsql>7z l ojdbc14.jar   | findstr XDatabase.class
  14. D:\shared\xsql>7z l postgresql-8.4-701.jdbc4.jar   | findstr XDatabase.class
  15. D:\shared\xsql>7z l sqlite.jar   | findstr XDatabase.class
  16. D:\shared\xsql>7z l sqlitejdbc-v056-zentus.jar   | findstr XDatabase.class
  17. D:\shared\xsql>7z l sqljdbc.jar   | findstr XDatabase.class
  18. D:\shared\xsql>7z l ULjDatabaseTransfer.jar   | findstr XDatabase.class
  19. D:\shared\xsql>7z l UltraLiteJ.jar   | findstr XDatabase.class
  20. D:\shared\xsql>7z l UltraLiteJ12.jar   | findstr XDatabase.class
  21. [b]D:\shared\xsql>7z l xsql.jar   | findstr XDatabase.class
  22. 2010-12-24 21:05:40 .....        30863        14443  [/b]com\sean\db\XDatabase.class

最末一行展示的是最终结果。

将上述逻辑写成批处理:

  1. @echo off
  2. SETLOCAL
  3. set WHICH_CLASS=%1
  4. echo WHICH_CLASS=%WHICH_CLASS%
  5. for /F %%i in ('dir /A:-D /S /B *.jar') do 7z l %%i | findstr %WHICH_CLASS% && echo %WHICH_CLASS% found in: "%%i"
  6. echo "Finished class finding..."
  7. echo "======================================"
  8. ENDLOCAL

运行一下命令:
findclass com\\sybase\\afx\\util\\StringUtil.class WHICH_CLASS=com\\sybase\\afx\\util\\StringUtil.class 2012-02-27 13:14:36 ..... 15230 5915 com\sybase\afx\util\StringUtil.class com\\sybase\\afx\\util\\StringUtil.class found in: "U:\target\lib\ext\sup-client.jar" 2012-02-27 13:14:36 ..... 15230 5915 com\sybase\afx\util\StringUtil.class com\\sybase\\afx\\util\\StringUtil.class found in: "U:\target\lib\ext\sup-server-rt.jar" "Finished class finding..." "======================================"
很容易得到最终结果。如果时间充分,我们甚至可以修改7z的源码,让它直接列出文件的全路径,那样,直接使用7z就可以找到最终文件了。

转载于:https://www.cnblogs.com/mixer/archive/2012/03/08/2448874.html

使用命令行快速找出class文件所在的jar文件相关推荐

  1. 如何快速找出Linux系统中的大文件?

    今日主题: 如何快速找出Linux系统中的大文件? 在前面的文章中,我们讲到了压测时磁盘空间被占满的问题,可以跟今天的文章结合着看. 在性能测试中,我们经常要关注系统磁盘空间,防止因磁盘空间占满而导致 ...

  2. 【Linux】使用du、df 和 sort 命令快速找出Linux系统中的大文件

    在性能测试中,我们经常要关注系统磁盘空间,防止因磁盘空间占满而导致的报错,那么具体怎么查看磁盘空间的大小呢?怎么找到占用空间最大的文件呢? 使用df.du并结合sort,可以快速找到系统中的大文件! ...

  3. 在命令行下,如何使用JAD反编译jar文件

    在工作中,我们经常需要对遗留系统或其他的第三方系统进行维护,如果我们没有java源文件的情况下,一般都需要将其中的jar文件进行反编译. 本文将以如何用命令来反编译一个test.jar文件为例,你可以 ...

  4. 快速找出Linux服务器上不该存在恶意或后门文件

    转载来源 :如何快速找出Linux服务器上不该存在恶意或后门文件 :https://www.2cto.com/article/201805/748965.html 如何快速找出Linux服务器上不该存 ...

  5. 易语言取c盘文件夹中的文件被占用,win7系统怎么快速找出文件被什么进程占用|win7解除文件占用的方法...

    ‍‍ 很多时候我们想删除文件或文件夹的时候,会出现文件正在使用的提示导致文件无法删除,如果知道是什么程序在使用这个文件好,但多数时候我们并不知道是被什么程序占用,那么在win7系统怎么快速找出文件被什 ...

  6. linux快速切换目录命令,Linux在命令行快速切换目录 - 米扑博客

    今天在微博上看到一个用命令行快速切换目录的文章,比之前自己的解决方案好了非常多,必须记录下来分享下. 每天在命令行下,一大部分的工作都是一遍又一遍的输入 cd ~/some/very/deep/oft ...

  7. 表格字体缩小 php_如何快速找出两个Excel表格不同的地方?

    上一篇文章介绍了如何快速找出两个word文档不同的地方,这篇文章来说说如何快速找出两个Excel表格不同的地方,这里说的两个Excel表格,可以是同一个工作簿的不同sheet,也可以是两个不同的Exc ...

  8. 命令行快速删除当前行_在命令行中快速有效地工作

    命令行快速删除当前行 There are a lot of command line tips and trics in the internet. Most of them discribe the ...

  9. 给右键菜单加入CMD命令行快速通道(适合win7)

    给右键菜单加入CMD命令行快速通道(适合win7) 博客分类: Windows知识 PHPWindows  原文地址:http://www.unxmail.com/read.php?51   很多人都 ...

最新文章

  1. Kubernetes 1.14 版本发布:正式支持Windows 节点,持久化本地卷进入GA
  2. 每天一个linux命令---导出到文件
  3. 《SQL Server企业级平台管理实践》读书笔记——几个系统库的备份与恢复
  4. .NET Core 开源项目 Anet 在路上
  5. Linux后台执行命令
  6. 图像基础知识 —— Opencv图像处理
  7. angular之DI理解
  8. vmware传东西到linux后文件变小,在VMWARE的Linux虚拟机上删除大容量文件后硬盘空间大小还不变怎么办?虚拟机虚拟机的各种应用及问题...
  9. PHP判断pc和移动端跳转,JS判断是PC还是移动端浏览器,并根据不同的终端跳转到不同的网址...
  10. 索引sql server_优化SQL Server索引策略
  11. 力扣题目——121. 买卖股票的最佳时机
  12. Python爬虫 - 01.实现贴吧一键签到
  13. Red5应用开发(三) 点播
  14. 大数据实时处理学期总结
  15. SPI,UART,I2C都有什么区别,及其各自的特点
  16. 快乐想象识字认字注册码发放!
  17. HEVC视频编码技术概述
  18. 内蒙古大学计算机学院教授,内蒙古大学计算机学院软件学院硕士生导师:张俊星...
  19. 使用Python解数学方程
  20. 《堂食点餐》APP代码前后端全部免费开源啦!

热门文章

  1. 华为云——给【服务器】一个温暖的家
  2. ubuntu 命令行命令历史记录存储在哪个文件夹
  3. react+ant design Breadcrumb面包屑组件
  4. php常用过滤htmlspecialchars() 函数把预定义的字符转换为 HTML 实体
  5. autocad.net中判断当前被激活的空间
  6. C#实现窗口最小化到系统托盘
  7. Popupwin结合Timer实现定时弹出消息提示
  8. mysql慢查询日志 Mysql慢查询
  9. 一些常用的基本的liunx命令:
  10. python 将excel文件转换为txt文件_python利用pandas将excel文件转换为txt文件的方法