Автоматическое создание файла манифеста с Eclipse для JAR-файлов - PullRequest
13 голосов
/ 11 сентября 2009

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

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

Ответы [ 8 ]

7 голосов
/ 11 сентября 2009

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

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

Щелкните правой кнопкой мыши Project -> Export -> Java / JAR-файл, Next, Спецификация файла JAR, Next, Параметры упаковки JAR, Next, Спецификация манифеста JAR.

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

Manifest-Version: 1.0

в нем.

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

5 голосов
/ 25 августа 2011

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

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

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

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

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

3 голосов
/ 11 сентября 2009

С Ant вы можете использовать jar task . У него есть опция manifest , чтобы указать все атрибуты, которые вам нужно включить. Примерно так:

  <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>
3 голосов
/ 11 сентября 2009

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

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

jar cfm <jar-file> <manifest-addition>
0 голосов
/ 25 июля 2017

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

0 голосов
/ 28 апреля 2016

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

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

0 голосов
/ 11 сентября 2009

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

0 голосов
/ 11 сентября 2009

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

...