可以通过编程方式访问MANIFEST.MF中定义的值吗?

我可以从代码中访问java清单中定义的值吗?

使用JarFile打开文件,然后调用getManifest()以获取Manifest 。 之后,您可以适当地访问属性。

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

java.lang.Package类提供对ImplementationTitleImplementationVendorImplementationVersionSpecificationTitleSpecificationVendorSpecificationVersion

可以使用CodeSource类find有关已签名类的信息,可以通过Class .getProtectionDomain() .getCodeSource()检索它。

这是一个简单的例子 ,从JAR的原位清单读取主要属性。 检查实际存在的内容非常方便。

使用以下方法检测外部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(); } 

从jcabi-manifests尝试com.jcabi.manifests.Manifests实用程序类。 使用此类,您可以使用一个衬管读取所有可用的MANIFEST.MF文件:

 String name = Manifests.read("Foo-Name"); 

另请参阅此文章: http : //www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html