2010-02-04 106 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(); 
    }