在 WAR 中列出 JAR

发布于 2024-11-26 20:34:12 字数 273 浏览 2 评论 0原文

jar -tvf hello.war

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

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

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

jar -tvf hello.war

However, my .war also contains some .jar in a lib folder within the .war.

I need a command display the contents of all the .jars within the .war.

The reason I need command line and not use tools like Winrar is because I need to incorporate it in my UNIX shell script.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ぽ尐不点ル 2024-12-03 20:34:12

您可以使用一个简短的脚本来完成此操作。

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

例如

$ ./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

You can do this with a short script.

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
失与倦" 2024-12-03 20:34:12

在 shell 脚本中并不是很有用,但我发现以交互方式查看 web 应用程序时执行此操作的最简单方法是在 emacs 中打开它们;归档模式可以理解 jar,只需要通过添加来了解 .wars
(add-to-list 'auto-mode-alist '("\\.war\\'" . archive-mode)) 到您的 .emacs。然后你可以像普通目录一样打开war,加上其中的任何内容:

Screenshot of archive mode with open .war

Not really useful in a shell script, but the easiest way I've found to do this when looking at webapps interactively is to open them in emacs; archive mode understands jars, and just needs to be told about .wars, by adding
(add-to-list 'auto-mode-alist '("\\.war\\'" . archive-mode)) to your .emacs. Then you can open the war like a normal directory, plus anything insde it:

Screenshot of archive mode with open .war

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文