首页 > 其他分享 >根据包名查找 Jar 包文件

根据包名查找 Jar 包文件

时间:2022-11-09 23:31:47浏览次数:70  
标签:包名 dirToSearch jarChecking jar packageName Jar 查找 com sdk


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

最笨拙的办法可能是这样

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

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

脚本内容



#!/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​​,如下执行即可。



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

更多推荐

标签:包名,dirToSearch,jarChecking,jar,packageName,Jar,查找,com,sdk
From: https://blog.51cto.com/u_3987305/5838994

相关文章

  • 常见的排序和查找算法
    常见算法常见的七种查找算法:​ 程序=数据结构加算法,数据结构是数据存储的方式,算法是数据计算的方式。所以在开发中,算法和数据结构息息相关。今天会涉及部分数据结构的专......
  • 二分查找与二分答案题解
    此类题目的特征为数据量大,数据为升序或降序根本目的是通过二分法快速缩小答案范围,然后对比数据或验证答案2.1二分查找输出时注意mid是否为第一个出现的答案1#incl......
  • C语言二分查找
    #include<stdio.h>intbinary_search(intarr[],intk,intsz){intleft=0;intright=sz-1;while(left<=right){intmid=(left+right)/2;if(arr[mid]<k){ left=mi......
  • Vue学习记录--实现列表的添加删除以及查找功能
    1.x版本中的filterBy指令,在2.x中已经被废除:​​filterBy-指令​​<trv-for="iteminlist|filterBysearchNamein'name'"><td>{{item.id}}</td><td>{{item.name......
  • 使用Javascript查找图像上的坐标
    下面的代码在页面标题中。GetCoordinates函数使用window.event方法查找单击鼠标时的坐标。它还需要考虑任何滚动和图像在文档中的位置,以便坐标始终相对于图像的左上角。......
  • IDEA开发中解决关于成功引入Jar但在 Maven Project视图下,Jar报错的问题
    项目是一个多模块的架构,在父模块定义pom.xml,如下<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http:/......
  • Java -jar 运行 报 MalformedInputException: Input length = 1
    IntellijIDEA中运行正常,linux运行正常,cmd下运行报:MalformedInputException:Inputlength=1微服务项目,在Nacos中做了配置,在引用Nacos中配置时,编码问题,导致的错误......
  • 分享一个重启、查看jar包状态的sh脚本
    很多时候我们部署jar包到服务器上的时候,都需要准备一个重启、查看jar包状态的sh脚本,本文分享一个。拿去即可用,把它放到和jar包同一个目录里即可,可以给它取个名字叫app.sh......
  • 二十一、B树的定义、查找、插入和删除
    一、B树的定义一棵m阶的B树,或为空树,或为满足下列特性的m叉树:(1)树中每个结点至多有m棵子树;(2)B树是所有结点的平衡因子均等于0的多路平衡查找树;(3)若根结点不是叶子结点,则至少......
  • 报错'pom.xml' has syntax errors和Unresolved dependency: 'org.mybatis:mybatis:jar
     错误:'pom.xml'hassyntaxerrors解决方法:构建SpringBoot项目时报错:'pom.xml'hassyntaxerrors大概率是pom.xml中出现了语法错误 <dependency>和</dependency>要......