前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >根据包名查找 Jar 包文件

根据包名查找 Jar 包文件

作者头像
技术小黑屋
发布2020-01-19 19:03:08
2.3K0
发布2020-01-19 19:03:08
举报
文章被收录于专栏:技术小黑屋

很多时候,我们需要根据包名来查找一些依赖所在的jar包,比如我们想要查找com.alipay这个包及其文件所在的jar包。

最笨拙的办法可能是这样

  • 一个一个jar包查找,再利用一些工具来验证。

其实,大可不必,我们需要简单实用如下的脚本就能解决这个问题。

脚本内容

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

#!/usr/bin/ruby require 'find' # extract arguements from command line dirToSearch = ARGV[0] packageName = ARGV[1].to_s.strip puts "dirToSearch=#{dirToSearch};packageName=#{packageName}" results = [] Find.find(dirToSearch).select { |f| f.end_with? ".jar" }.each { |f| puts "Checking #{f}" #as jar tf shows the package information like the file path style # we need to map all the dots(.) to slashes(/) contains = `jar tf #{f}`.include? packageName.gsub ".", "/" if contains results << "#{f}" end } puts "The jar files containing #{packageName}" puts results

上面的脚本利用了

  • 遍历查找jar文件
  • 利用jar tf命令读取出jar包中的文件列表
  • 执行字符串包含来实行检查

脚本执行

将上面的内容保存成文件findJarByPackageName.rb,如下执行即可。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

ruby findJarByPackageName.rb . "com.alipay" dirToSearch=.;packageName=com.alipay Checking ./0.jar Checking ./HwPush_SDK.jar Checking ./MiPush_SDK_Client_3_0_3.jar Checking ./alipaySdk-20180601.jar Checking ./classes.jar Checking ./full.jar Checking ./gradle-wrapper.jar Checking ./huawei-pps-channel-sdk.jar Checking ./mqtt-client-java1.4-uber-1.14.jar Checking ./mta-sdk-1.6.2.jar Checking ./open_sdk_r5788.jar Checking ./pinyin4j-2.5.0.jar Checking ./res.jar Checking ./tbs_sdk_thirdapp_v3.6.0.1249_43610_sharewithdownload_withoutGame_obfs_20180608_114954.jar Checking ./zxing.jar The jar files containing com.alipay ./alipaySdk-20180601.jar

更多推荐

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 脚本内容
  • 脚本执行
  • 更多推荐
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档