Spec-Zone .ru
спецификации, руководства, описания, API
След: Развертывание
Урок: Упаковка Программ в Файлах JAR
Раздел: Работа с Файлами манифеста: Основы
Установка Точки входа Приложения
Домашняя страница > Развертывание > Упаковка Программ в Файлах JAR

Установка Точки входа Приложения

Если Вам связали приложение в файле JAR, Вы нуждаетесь в некотором способе указать, который class в пределах файла JAR является точкой входа Вашего приложения. Вы предоставляете эту информацию с Main-Class заголовок в декларации, у которой есть общая форма:

Main-Class: classname

Значение classname имя class, который является точкой входа Вашего приложения.

Вспомните, что точкой входа является class, имеющий метод с подписью public static void main(String[] args).

После того, как Вы установили Main-Class заголовок в декларации, Вы тогда выполняете файл JAR, используя следующую форму java команда:

java -jar JAR-name

main метод class, определенного в Main-Class заголовок выполняется.

Пример

Мы хотим выполниться main метод в class MyClass в пакете MyPackage когда мы выполняем файл JAR.

Мы сначала создаем названный текстовый файл Manifest.txt со следующим содержанием:

Main-Class: MyPackage.MyClass

Предупреждение: текстовый файл должен закончиться новой строкой или возвратом каретки. Последняя строка не будет проанализирована должным образом, если она не закончится новой строкой или возвратом каретки.

Мы тогда создаем названный файл JAR MyJar.jar вводя следующую команду:

jar cfm MyJar.jar Manifest.txt MyPackage/*.class

Это создает файл JAR с декларацией со следующим содержанием:

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

Когда Вы выполняете файл JAR со следующей командой, main метод MyClass выполняется:

java -jar MyJar.jar

Установка Точки входа с Инструментом JAR

Флаг 'e' (для 'entrypoint'), представленный в JDK 6, создает или переопределяет декларацию Main-Class атрибут. Это может использоваться, создавая или обновляя файл фляги. Используйте это, чтобы определить точку входа приложения, не редактируя или создавая файл манифеста.
Например, эта команда создает app.jar где Main-Class значение атрибута в декларации устанавливается в MyApp:

jar cfe app.jar MyApp MyApp.class

Можно непосредственно вызвать это приложение, выполняя следующую команду:

java -jar app.jar

Если entrypoint имя class находится в пакете, оно может использовать '.' (точечный) символ в качестве разделителя. Например, если Main.class находится в вызванном пакете foo точка входа может быть определена следующими способами:

jar cfe Main.jar foo.Main foo/Main.class

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Изменение Файла манифеста
Следующая страница: Добавление Классов Пути к классу Файла JAR