Файл манифеста MANIFEST.MF

Файл манифеста содержится внутри архива JAR по пути “META-INF/MANIFEST.MF”. Он содержит информацию, которая позволяет указывать версию, производителя, цифровую подпись, дополнительные пути поиска классов и многое другое.

Пример файла “MANIFEST.MF”:

Как видите, файл состоит из ключей и их значений, разделённый символом «:». В нашем случае указывается версия спецификации манифеста 1.0, и что jar был создал 1.6.0_26-b03 (Sun Microsystems Inc.).

Пока эта информация не очень полезна. Но файл манифеста может содержать входную точку программы, например:

Здесь мы указали, что класс App в пакете ru.urvanov.javaexamples.springjavamailsenderimpl содержит статический метод main, который и должен запускаться при запуске Jar-файла командой:

Также в файле манифеста бывают различные секции. Секции обычно отделяются друг от друга пустой строкой и содержат название секции (пакета Java), для которого указываются отдельные атрибуты. Примерно так:

Файл манифеста должен быть в кодировке UTF-8 и может использовать переводы строк CR+LF, LF или просто CR.

Последняя строка в файле манифеста обязательно должна заканчиваться переводом строки!

Из самого кода на Java мы можем вручную считывать и обрабатывать файлы манифеста, если это необходимо. Для этого используется класс java.util.jar.Manifest. Напишем небольшой пример его использования. Считывать будем следующий файл манифеста:

Код программы, считывающей этот файл:

В результате после запуска в консоли получим следующее:

Если мы собираем JAR-файл мавеном, то мы используем maven-jar-plugin, который позволяет указывать любые записи для файла манифеста:

В секции manifest мы указываем стандартные свойства, которые попадут в файл манифеста, а в manifestEntries мы можем прописать абсолютно любые свойства, какие хотим.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *