我可以在我的 Java 代码中读取 Manifest 文件,但我也想知道它是否可能,如果可能,如何从命令行打开 JAR 文件并查看其 Manifest.MF 文件,或者至少能够指定 Manifest.MF 文件的属性并查看它的值。
7 回答
从这里:
您可以从 jar 文件中提取选定的条目。例如,如果您只想查看 meta-inf/manifest.mf 文件,您可以
C:\Sun\AppServer\lib>jar xvf j2ee.jar META-INF/MANIFEST.MF
inflated: META-INF/MANIFEST.MF
或者使用反斜杠而不是正斜杠:
C:\Sun\AppServer\lib>jar xvf j2ee.jar META-INF\MANIFEST.MF
inflated: META-INF/MANIFEST.MF
条目名称区分大小写,因此以下内容不会提取任何内容:
C:\Sun\AppServer\lib>jar xvf j2ee.jar meta-inf/manifest.mf
当然,您可以随时双击该条目以在 WinZip、fileroller 或其他工具中查看它。
像这样的东西应该工作:
jar -xf <jarfile.jar> META-INF/MANIFEST.MF
看起来unzip命令会对您有所帮助——它适用于大多数 Un*x 变体,并且如果您使用的是 Windows,它也是 cygwin 的一部分。unzip -qc *jar-file* META-INF/MANIFEST.MF
会将清单的内容转储到控制台。
JDK 提供的 jar 可执行文件的工作方式与 tar 在 linux 上的工作方式相同。
例如 jar xvf .... 查看 jar 选项。
运行时属性不应在清单中定义,它们应在遵循 Java 属性样式的单独配置文件中定义。假设您出于某种原因在运行时检查清单。
但如果你需要:
jar xvf somejar.jar META-INF/MANIFEST.MF
将为您的观看乐趣增加清单。
命令没有办法jar
;您可以获得的最接近的方法是用于-tf
显示文件的存在或不存在或提取META-INF/MANIFEST.MF
文件。-xf
解决方法:
- 您可以编写自己的课程来执行此操作
- 您可以使用任何 ZIP 文件查看器来提取内容 - 许多人会将存档中文件的内容写入标准输出,以便将其通过管道传输到另一个命令中(请记住,
jar
文件只是文件的特定用法zip
)
您可以为此使用 vi 。如果要确保不更改文件,请使用 -R 开关打开(只读)。例如:
vi -R sample-1.0.0-SNAPSHOT.jar
您可以使用向上/向下箭头导航到 zip 文件,或使用 / 进行搜索,例如:
/MANIFEST.MF
要退出,请键入以下序列
:q <Enter>