gpt4 book ai didi

java - 解析 jar 中 manifest.mf 文件条目的正确方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 21:04:45 26 4
gpt4 key购买 nike

许多 Java jar 中包含的 manifest.mf 包含看起来很像电子邮件 header 的 header 。参见示例 [*]

我想要一些可以将这种格式解析为键值对的东西:

Map<String, String> manifest = <mystery-parse-function>(new File("manifest.mf"));

我在谷歌上搜索了一些“parse manifest.mf”“manifest.mf format”等信息,我发现了大量关于 header 含义的信息(例如在 OSGI 包、标准 Java jar 等中)但是这不是我要找的。

查看一些示例 manifest.mf 文件,我可能会实现一些东西来解析它(对格式进行逆向工程),但我不知道我的实现是否真的正确。所以我也不是在寻找其他人快速拼凑的解析函数,因为它遇到了同样的问题。

对我的问题的一个很好的回答可以指出格式的规范(这样我就可以编写自己的正确 解析函数)。最佳答案将我指向一个已经具有正确实现的现有开源库。

[*] = https://gist.github.com/kdvolder/6625725

最佳答案

可以使用 Manifest 读取 MANIFEST.MF 文件类:

Manifest manifest = new Manifest(new FileInputStream(new File("MANIFEST.MF")));

然后你可以通过做得到所有条目

Map<String, Attributes> entries = manifest.getEntries();

通过做所有主要属性

Attributes attr = manifest.getMainAttributes();

一个工作示例

我的 MANIFEST.MF 文件是这样的:

Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build

我的代码:

Manifest manifest = new Manifest(new FileInputStream(new File("MANIFEST.MF")));
Attributes attr = manifest.getMainAttributes();

System.out.println(attr.getValue("Manifest-Version"));
System.out.println(attr.getValue("X-COMMENT"));

输出:

1.0
Main-Class will be added automatically by build

关于java - 解析 jar 中 manifest.mf 文件条目的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18899123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com