我可以从代码中访问java清单中定义的值吗?
答案 0 :(得分:17)
可以通过编程方式访问MANIFEST.MF中的许多值,而无需查找和/或打开jar文件本身。
课程java.lang.Package
提供对ImplementationTitle
,ImplementationVendor
,ImplementationVersion
,SpecificationTitle
,SpecificationVendor
和SpecificationVersion
的访问权限
可以使用CodeSource
类找到有关已签名类的信息,可以通过Class
.getProtectionDomain()
.getCodeSource()
答案 1 :(得分:11)
答案 2 :(得分:5)
这是从JAR的清单原位中读取主要属性的简单example。检查实际存在的内容非常方便。
答案 3 :(得分: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();
}
答案 4 :(得分:0)
从com.jcabi.manifests.Manifests
尝试jcabi-manifests实用工具类。使用此类,您可以使用一个衬管读取所有可用的MANIFEST.MF文件:
String name = Manifests.read("Foo-Name");
另外,请参阅此文章:http://www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html