Доступны ли значения, определенные в MANIFEST.MF программно?

Можно ли получить доступ к значениям, определенным в манифесте Java из кода?

Ответы

Ответ 1

Откройте файл JarFile, а затем вызовите getManifest(), чтобы получить Manifest. После этого вы можете получить доступ к соответствующим атрибутам.

Ответ 2

Многие из значений в MANIFEST.MF могут быть доступны программно, без необходимости находить и/или открывать сам файл jar.

Класс java.lang.Package обеспечивает доступ к ImplementationTitle, ImplementationVendor, ImplementationVersion, SpecificationTitle, SpecificationVendor и SpecificationVersion.

Информация о подписанных классах может быть найдена с помощью класса CodeSource, который можно получить с помощью Class .getProtectionDomain() .getCodeSource()

Ответ 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();
   }