it-swarm.com.ru

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

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

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

Есть ли лучший способ создать файл JAR, который имеет Manifest?

12
ajib

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 и сохранить его. обратно в банку.

7
Nate

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

Да, 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

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

5
user195488

С 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
JuanZe

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

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

jar cfm <jar-file> <manifest-addition>
3
Michael Borgwardt

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

0
Kenneth V

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

0
João Silva

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

0
Joonas Pulakka

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

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

0
Reedyseth