2010-02-04 101 views

回答

10

JarFile打开文件,然后拨打getManifest()即可得到Manifest。之后,您可以适当地访问属性。

+0

这更加灵活。谢谢! – er4z0r 2010-02-09 09:37:00

15

MANIFEST.MF中的许多值都可以通过编程方式访问,而无需查找和/或打开jar文件本身。

java.lang.Package提供访问ImplementationTitleImplementationVendorImplementationVersionSpecificationTitleSpecificationVendorSpecificationVersion

关于签订类的信息可以使用CodeSource类,它可以通过Class.getProtectionDomain().getCodeSource()

+0

谢谢!你碰巧知道这是否也可用于Android? – er4z0r 2010-02-04 11:20:47

+0

个人我不知道,但它似乎是这样的:http://developer.android.com/reference/java/lang/package-summary.html – 2010-02-04 11:24:00

+0

谢谢。我再次检查它,发现Jon的解决方案提供了更多的灵活性,并且可以在android上使用。 – er4z0r 2010-02-09 09:38:44

5

检索发现这里的原位阅读从JAR的清单主要属性的简单example。检查实际内容很方便。

+0

+1这个漂亮的例子 – stacker 2010-02-04 20:47:55

+0

和我的+1 :-) – er4z0r 2010-02-09 09:37:45

4

使用下面的方法来检测外部JAR/SDK MANIFEST.MF信息。我们可以使用此信息来检测Jar版本等。使用http://docs.oracle.com/javase/6/docs/api/java/util/jar/Manifest.html

public void getSDKInfo() { 
    Package pkg = Manifest.class.getPackage(); 
    String specTitle = pkg.getSpecificationTitle(); 
    String vendor = pkg.getSpecificationVendor(); 
    String version = pkg.getSpecificationVersion(); 
    }