Автоматическое создание файла манифеста с Eclipse для файлов JAR

Как создать файл Manifest для группы файлов JAR, которые я уже создал.

Я использовал Eclipse для создания моего JAR файла.

Есть ли лучший способ создания JAR файла с Manifest?

Ответ 1

Eclipse предоставляет опции для создания файла манифеста для Jar, сохранения сгенерированного манифеста в проекте или использования указанного файла для манифеста.

У меня Eclipse 3.4.2 и он на четвертом экране в этом процессе:

Щелкните правой кнопкой мыши Project → Export → Java/JAR file, Next, JAR File Specification, Next, JAR Packaging Options, Next, JAR Manifest Specification.

По умолчанию нужно просто сгенерировать манифест по умолчанию для JAR, а не сохранять сгенерированный файл обратно в проект, поэтому, если вы откроете свой JAR файл, у него будет манифест, но у него просто будет что-то вроде

Manifest-Version: 1.0

в нем.

Если вы хотите изменить существующие JAR без их повторной сборки, самый простой способ - это просто сделать так, как предложил mad-j, и открыть их с помощью Zip-инструмента и отредактировать существующий файл /META -INF/MANIFEST.MF и сохраните его обратно в JAR.

Ответ 2

Сегодня я столкнулся с этой проблемой.

Да, Eclipse создаст манифест для вас, но это действительно шутка.

Он включает только строку Manifest-Version: 1.0. Я не понял, как добавить его в свой основной класс, поэтому я создал свой собственный файл MANIFEST.MF, добавив его в основной каталог проекта (не src, а не lib). Затем, когда я перейду в "Экспорт" > "Файл JAR", нажмите "Далее" до конца (не нажимайте Finish слишком рано) и выберите опцию, чтобы выбрать манифест из проекта. Выберите файл манифеста, который вы только что добавили в свой проект. Убедитесь, что манифест имеет путь к вашему основному классу (например, com.company и т.д.). Например, как выглядит основной файл манифеста:

Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: MyPackage.MyClass

Я попробовал метод @Michael, но в итоге у меня не осталось файлов классов, оставшихся в JAR, и только файлы манифеста. Мой метод выше хорошо работает.

Ответ 3

манифест - это простой текстовый файл, учебник Sun подробно описывает его содержимое.

Все, что вам нужно сделать, это создать такой файл и обновить файлы JAR с помощью этой команды:

jar cfm <jar-file> <manifest-addition>

Ответ 4

С помощью Ant вы можете использовать задачу jar. Он имеет явный вариант, чтобы указать все атрибуты, которые нужно включить. Что-то вроде этого:

  <target name="create-my-jar">
     <jar jarfile="foo.jar" basedir="bin/classes">      
        <manifest>
        <attribute name="Class-Path" value="xxx"/>
        <attribute name="Ant-Version" value="${ant.version}"/> 
        <attribute name="Created-By" value="JDK ${java.version} (${java.vendor})"/>
        <attribute name='Specification-Title' value='xxx' />
        <attribute name='Specification-Version' value='xxx' />
        <attribute name='Specification-Vendor' value='xxx' />
        <attribute name='Implementation-Title' value='xxx' />
        <attribute name='Implementation-Version' value='xxx' />
        <attribute name='Implementation-Vendor' value='xxx' />
        <attribute name='Implementation-Vendor-Id' value='xxx' />
        <attribute name='Implementation-Vendor-URL' value='xxx' />
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name='Build-Date' value='xxx'/>
        <attribute name='Build-Time' value='xxx'/>              
        </manifest>
        </jar>
   </target>

Ответ 5

Файл манифеста по умолчанию создается при создании jar с помощью jar cf jar-file inputs-files.

Ответ 6

Файлы манифеста - это текстовые файлы. И поскольку файлы JAR - это файлы ZIP, вы также можете добавить манифест с помощью инструмента, такого как 7-zip. Это, конечно, не работает для подписанных JAR.

Ответ 7

Также вы можете взглянуть на эту документацию, это помогло мне решить проблему с помощью мастера Eclipse.

См. Документацию Eclipse

Ответ 8

Используя Eclipse, на странице спецификации JAR Manifest внизу, есть текстовое поле, в котором вы можете просмотреть свой Основной класс. Перейдите в свой Основной класс и нажмите "Готово". Это генерирует манифест с информацией основного класса, позволяющей выполнить файл jar. -Dev On