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

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

5 ответов

Решение

Откройте файл с помощью 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 Info. Мы могли бы использовать эту информацию для определения версии 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-манифестов. Используя этот класс, вы можете читать все доступные файлы MANIFEST.MF с одним вкладышем:

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

Также см. Эту статью: http://www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html

Другие вопросы по тегам