Manifest.mf文件查看器?

时间:2012-10-15 13:20:50

标签: java jar osgi manifest

是否有任何工具可以从jar中获取manifest.mf文件并很好地显示内容?

特别是在使用OSGi包时,Export-Package和Import-Package条目会变得非常大并且难以完全解决正在发生的事情。添加到这个简单的关键字文本搜索由于换行而不是100%可靠。

8 个答案:

答案 0 :(得分:5)

我相信BND tools的eclipse插件做得相当不错。它有一个用于查看jar文件的编辑器。

答案 1 :(得分:3)

这是一个清单文件的在线漂亮打印机,可选排序:

https://robinst.github.io/jar-manifest-formatter/

答案 2 :(得分:2)

bnd本身可以从命令行运行并打印所有细节:

 java -jar biz.aQute.bnd.run.jar xx.jar

您还可以点击bndtools中的jar并选择打印选项卡,这会为您提供比您可能需要的更多详细信息。

可以从https://bndtools.ci.cloudbees.com/job/bnd.master/lastSuccessfulBuild/artifact/dist/bundles/biz.aQute.bnd/biz.aQute.bnd-latest.jar

下载

输入bnd help以获取有关命令的信息。

答案 3 :(得分:2)

在javascript中解析它;)这是一个 JSFiddle 来漂亮地打印一个OSGi MANIFEST.MF文件:

http://jsfiddle.net/scotch/5WJwd/embedded/result/

var sectionsText = text.split(/\n\n\n/),
    sections = {},
    sectionText,
    name,
    body,
    packagesText,
    packages,
    packageName,
    packageBody;

for (var i in sectionsText) {
    sectionText = sectionsText[i];
    name = sectionText.substr(0, sectionText.indexOf(": "));
    body = sectionText.substr(sectionText.indexOf(": ") + 2);
    sections[name] = body;

    if (name.indexOf("Package") != -1) {
        body = body.replace(/[\n\r] /g, '');
        body = body.replace(/(,)(?=(?:[^"]|"[^"]*")*$)/g, "$1\n");
        packagesText = body.split(/\n/);
        packages = {};
        for (var i in packagesText) {
            packageBody = packagesText[i];
            packageName = packageBody.substr(0, packageBody.indexOf(";"));
            packageBody = packageBody.substr(packageBody.indexOf(";")+1);

            if (collapse) {
                packageBody = packageBody.replace(/uses:="[^"]*"/g, 'uses:="..."');
            }

            packages[packageName] = packageBody;//.replace(/;/g, ';\n');
        }
        sections[name] = packages;
    }
}

它也按字母顺序对条目进行排序,因此您可以对它们进行比较。希望它对某些人(特别是在Eclipse之外开发的人)有用。

答案 4 :(得分:2)

这是清单的在线漂亮打印机; https://apinx.dk/javamanifest/

您可以拖放.jar文件或将manifest.mf本身粘贴粘贴。

答案 5 :(得分:1)

我从Maven Central下载了bnd.jar http://repo1.maven.org/maven2/biz/aQute/bnd/bnd/2.2.0/bnd-2.2.0.jar

是的,我可以运行它,它可以打印清单:

java -jar bnd-2.2.0.jar example.jar

print命令显示Import-Package和Export-Package更好:

java -jar bnd-2.2.0.jar print example.jar

答案 6 :(得分:0)

如果您使用的是eclipse,则可以使用

配置的插件清单编辑器

enter image description here

答案 7 :(得分:0)

我在7-Zip中打开了jar(任何解压缩程序/解压缩程序都可以这样做),然后您可以选择将MANIFEST.MF文件复制到计算机的其他位置。我将其复制到桌面,然后使用Visual Studio Code打开。任何文本编辑器都可以使用。

或者,我用Atom打开罐子。它显示了我罐子的整个树形结构。我双击MANIFEST.MF文件,它在Atom中打开。