在linux下,如何搜索jar文件中包含了哪些方法

在linux下,如何搜索jar文件中包含了哪些方法,第1张

(1)用WinRAR打开

(2)找到想知道类和方法的class

(3)反编译

javap

-c

Class文件

不能加class后缀

试试这个:find . -name "*.jar"|awk '{print "jar -tvf "$1}'|sh|grep AAA

补充:题主的问题不解开jar包用命令解决不了,上述命令仅用于查找jar包中class文件名称包含AAA关键字的,而不是内容,下面的命令可以输出jar包名称及其含有AAA关键子名称的class文件:

find . -name "*.jar"|while read name do echo file:$namejar -tvf $name|grep AAA done

另:在windows下当你双击打开jar包,然后双击class文件查看其内容,也是临时解压后打开的,所以要查看jar包中class文件的内容,你不解开怎么能做到呢?

要达到题主的目标,只能解开,方法如下:

编辑一个shell脚本,名称随意,如findAAA.sh,内容如下:

#!/bin/bash

find <path> -name "*.jar"|while read jarname    #这里<path>修改为你要在哪个目录下查找jar及class文件

do

    echo "Processing jar-file:$jarname"

    mkdir /tmp/jartmp    #临时解开放置的目录

    cd /tmp/jartmp

    jar -xf $jarname

    find . -name  "*.class"|while read cname

    do

        findflag=$(strings $cname|grep AAA)        #class文件都是二进制的,用strings查看

        if [ "$findflag"x != x ]then

            echo "Class File: $cname include keyword AAA"

        fi

    done

    rm -rf /tmp/jartmp  #删除临时文件

done

编辑好脚本后,sh findAAA.sh执行即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/8396236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存