如何读取.war文件?


17

我正在尝试查看.war文件的内容。我首先使用设置了它的权限,chmod 777然后在尝试使用以下方法访问它时:

cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/

它正在给予cd: /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/: Not a directory,我无法进一步进行。

有人可以帮我解决这个问题吗?


5
不要chmod 777在压缩文件上使用。您不需要执行位即可读取它。安全644640建议。
Braiam


/usr/local/standalone/deployments/Sample.war目录还是文件?
jlliagre 2013年

Answers:


21

.war文件已打包。您可以使用以下任一命令提取信息:

jar -xvf Sample.war
unzip Sample.war

然后,您应该可以运行 cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/


3
jar -xvf *war如果当前目录中有多个war文件,则无法使用。tar -xvfz根本无法使用,您将压缩文件和压缩文件混淆了。
jlliagre 2013年

没错,我并不是要推断它可以在多次战争中使用,只是您可以逐字使用该命令进行任何一次战争。我已更改它
JZeolla

1
我认为最好使用jar -tvf而不是建议的jar -xvf方法。因此,文件不会被提取(并污染您的。),而是被列出。
Dror Cohen

8

.war 文件是压缩存档。

您可以列出其中包含的内容

jar tvf Sample.war

要么

zipinfo Sample.war

如果要查看存储在归档中的文件的内容,则需要首先将其提取到以下位置:

mkdir /tmp/foo
cd /tmp/foo
unzip /usr/local/standalone/deployments/Sample.war
ls -l WEB-INF/classes/

4

如果您不想提取文件,则可以使用它vim filename.war来读取文件的内容。您可以通过选择文件的子目录并按Enter来读取它们。


为此,您需要unzip安装软件包。
Thaoden


0

除了使用jar或解压缩来提取它们之外,您还可以使用Midnight Commander(mc)导航到这些文件,然后在它们上按Enter键,就好像它们是目录一样。

如果这不能立即生效,则您的mc版本未配置为知道.war后缀,但是您仍然可以通过键入cd Sample.war#uzip(旧mc)或cd Sample.war / uzip使用此功能: //(Debian不稳定的mc),然后按Enter。另外一个好处是,按Escape键然后按Enter键(在某些终端中,也按Alt-Enter键,但这不是可移植的,因此不要依赖它)将当前文件名插入命令行,但是您也必须按Backspace键,因为它会添加一个空格,并且#uzip或/ uzip://需要立即跟随文件名。

这称为mc VFS(虚拟文件系统)。

我不会在这里重复解压缩/ fastjar / jar的答案,但它们也是正确的。


0

如果unix命令不起作用,则将文件ftp到本地计算机。

.jar或者.war.ear任何存档文件可以在7-Zip的按照以下的步骤来打开-

  1. 右键单击存档文件
  2. 7拉链
  3. 打开档案

您应该能够看到所有存档文件的内容。现在浏览文件夹/文件,然后右键单击->编辑文件->保存文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.