【问题标题】:Read MANIFEST.MF of a jar from shell从外壳中读取罐子的 MANIFEST.MF
【发布时间】:2019-08-17 20:32:04
【问题描述】:

我知道如何从 jar 中找到并解压缩 MANIFEST.MF

https://stackoverflow.com/a/7066174/927493

但是MANIFEST.MF 有特殊的格式规则。读取“属性”比从“标准”属性文件中读取它更难,因为值可能有换行符。

使用命令行从MANIFEST.MF 读取给定属性(如Implementation-URL)的稳健方法是什么?

编辑:我添加了一个示例。虚线好像是以空格开头的,但是我还没有找到规范。

Build-Jdk: 1.8.0_161
Implementation-URL: http://ik-rep2.continentale.loc:8081/nexus/conten
 t/sites/site/de.something/release-plugin-ear/0.1.5-SN
 APSHOT/release-plugin-ear

【问题讨论】:

  • @ernest_k 这很有趣,但它谈论的是从 Java 读取它,而不是从命令行。
  • this?
  • 您能否提供一个包含换行属性示例的示例输入?您能否确认换行属性总是以空格开头,如 Eugene 的链接所示?
  • @JFMeier Specification 说:任何行都不能超过 72 个字节(不是字符),采用 UTF8 编码形式。如果某个值会使初始行长于此值,则应在额外的行上继续(每行都以单个空格开头)。

标签: java bash shell manifest.mf


【解决方案1】:

使用 Eugene 的链接,您可以先正确格式化 manifest.mf 文件,然后将格式化的输出通过管道传输到 awk 以提取您需要的属性值:

perl -0777 -wpe 's/\n //g' MANIFEST.MF | awk '/PROPERTY/{print $2}'  

【讨论】:

    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多