在WAR中列出JAR

时间:2011-07-30 06:46:46

标签: jar war shell

jar -tvf hello.war

但是,我的.war.jar内的lib文件夹中也包含一些.war

我需要一个命令来显示.jar内所有.war的内容。

我需要命令行而不使用像Winrar这样的工具的原因是因为我需要将它合并到我的UNIX shell脚本中。

2 个答案:

答案 0 :(得分:0)

您可以使用简短的脚本执行此操作。

TEMPDIR=`mktemp -d`
REALPATH=`pwd`/$1
(cd $TEMPDIR && jar xf $REALPATH)
for j in `find $TEMPDIR -name "*.jar"`; do echo `basename $j`; jar tvf $j; done
rm -rf $TEMPDIR

E.G。

$ ./go.sh x.war
z.jar
     0 Sat Jul 30 21:53:20 EST 2011 META-INF/
    71 Sat Jul 30 21:53:20 EST 2011 META-INF/MANIFEST.MF
   182 Sat Jul 30 21:52:54 EST 2011 go.sh
    25 Sat Jul 30 21:50:46 EST 2011 zz.sh
x.jar
     0 Sat Jul 30 21:33:28 EST 2011 META-INF/
    71 Sat Jul 30 21:33:28 EST 2011 META-INF/MANIFEST.MF
     0 Sat Jul 30 21:33:20 EST 2011 x

答案 1 :(得分:0)

在shell脚本中没有用,但在交互式查看webapps时我发现这样做的最简单方法是在emacs中打开它们;存档模式了解罐子,只需通过添加就可以了解.wars (add-to-list 'auto-mode-alist '("\\.war\\'" . archive-mode)) .emacs。然后你可以像普通目录一样打开战争,加上任何东西:

Screenshot of archive mode with open .war