【问题标题】:how to delete .class file in a nested jar file (A .jar contains B.jar (inside B.jar there is .class file)如何删除嵌套 jar 文件中的 .class 文件(A .jar 包含 B.jar(在 B.jar 中有 .class 文件)
【发布时间】:2022-01-17 05:03:42
【问题描述】:

能否请您帮助 Linux 中的命令如何从嵌套的 jar 文件中删除 .class 文件

EX:A Jar 包含 B.Jar(在 B.jar 中包含 test.class)文件

现在在上面的场景中,我想从 A.Jar 中的 B.jar 中删除 test.class 文件。

你能帮忙用 linux 命令来执行这个吗?

【问题讨论】:

  • 到目前为止你尝试过什么?你被困在哪里了?这与编程有什么关系?

标签: linux jar


【解决方案1】:
#!/bin/bash
#Example: /scanfix2.sh JndiLookup

if [ $# -lt 1 ] ; then
  exit 1
fi
for i in `find . | grep -iE "(\.jar$|\.war$)"`;
do
        c=`jar -tf $i | grep -i "\.jar" | wc -l`
        if [ $c -ne 0 ]; then
                echo "Scanning $i"
                b=`basename $i`
                f=`pwd`
                rm -rf /tmp/$b
                mkdir /tmp/$b
                cp $i $i.bck
                cp $i /tmp/$b/$b
                cd /tmp/$b
                jar -xf $b
                rm $b
                rm -rf scanfix_$b.txt
                for j in `find .|grep -i /$1.class`;
                do
                        mv $j $j.bck
                        echo Fixed $i $j >> scanfix_$b.txt
                done
                /scanfix2.sh $1 $i >> scanfix_$b.txt
                cc=`cat scanfix_$b.txt|grep Fixed|wc -l`
                if [ $cc -gt 0 ]; then
                        jar cf $b .
                        echo Nested $b [$cc fixes]
                        cat scanfix_$b.txt
                        cd $f
                        cp /tmp/$b/$b .

                else
                        cd $f
                        rm $i.bck
                fi
        else
                echo "Checking $2$i"
                for j in `jar -tf $i|grep -i /$1.class`;
                do
                        cp $i $i.bck
                        zip -q -d $i $j
                        echo Fixed $i $j
                done
        fi
done

【讨论】:

    猜你喜欢
    • 2012-12-13
    • 2015-11-20
    • 2013-11-14
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 2020-02-16
    相关资源
    最近更新 更多