Ответ 1
Откройте файл JarFile
, а затем вызовите getManifest()
, чтобы получить Manifest
. После этого вы можете получить доступ к соответствующим атрибутам.
Можно ли получить доступ к значениям, определенным в манифесте Java из кода?
Откройте файл JarFile
, а затем вызовите getManifest()
, чтобы получить Manifest
. После этого вы можете получить доступ к соответствующим атрибутам.
Многие из значений в MANIFEST.MF могут быть доступны программно, без необходимости находить и/или открывать сам файл jar.
Класс java.lang.Package
обеспечивает доступ к ImplementationTitle
, ImplementationVendor
, ImplementationVersion
, SpecificationTitle
, SpecificationVendor
и SpecificationVersion
.
Информация о подписанных классах может быть найдена с помощью класса CodeSource
, который можно получить с помощью Class
.getProtectionDomain()
.getCodeSource()
Вот простой пример чтения основных атрибутов из манифеста JAR in situ. Это удобно для проверки того, что на самом деле там.
Используйте следующий способ для обнаружения информации внешнего флага 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();
}
Попробуйте com.jcabi.manifests.Manifests
класс утилиты из jcabi-manifestests. Используя этот класс, вы можете прочитать все доступные файлы MANIFEST.MF с одним слоем:
String name = Manifests.read("Foo-Name");
Также см. эту статью: http://www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html