Статьи

Собственная упаковка Java с NetBeans 7.4

Одной из новых функций NetBeans 7.4, которая сделала страницу « NetBeans 74 NewAndNoteworthy », является « Собственная упаковка », которая описана на этой странице как «Проекты JavaSE теперь поддерживают создание собственных пакетов с использованием собственной технологии упаковки, предоставляемой JavaFX . »

Я буду использовать очень простой пример, чтобы продемонстрировать эту встроенную функциональность упаковки в NetBeans 7.4. Следующий листинг кода для этого расширенного примера Hello World.

EnhancedHelloWorld.java

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
package dustin.examples;
 
import static java.lang.System.out;
 
/**
 * Slightly enhanced "Hello World" example.
 *
 * @author Dustin
 */
public class EnhancedHelloWorld
{
   /**
    * Main function.
    *
    * @param args the command line arguments; name being addressed, if any.
    */
   public static void main(String[] args)
   {
      final String addresseeName = args.length > 0 ? args[0] : "World";
      out.println("Hello, " + addresseeName);
   }
}

На следующем изображении этот же код показан в редакторе исходного кода NetBeans 7.4.

enhancedHelloWorldCodeInNetBeans74

Чтобы использовать функцию «Собственная упаковка», я могу щелкнуть правой кнопкой мыши проект и выбрать «Свойства», как показано на следующем рисунке.

rightClickNb74ProjectSelectProperties

Нажатие на «Свойства» приводит к появлению окна «Свойства проекта». Это окно, как показано на следующем снимке экрана, позволяет разработчику развернуть «Сборку», выбрать «Развертывание» и установить флажок рядом с надписью «Включить собственные действия по упаковке в меню проекта». Выбор этого параметра настраивает NetBeans 7.4 для поддержки собственной упаковки для этого проекта NetBeans.

projectPropertiesNetBeans74

С включенной встроенной упаковкой NetBeans 7.4 теперь я могу щелкнуть правой кнопкой мыши по проекту и получить новую опцию «Пакет как». Когда я выбираю этот параметр «Пакет как», я вижу следующие варианты: «Все артефакты», «Все установщики», «Только образ», «Установщик EXE» и «Установщик MSI». Обратите внимание, что моя среда IDE NetBeans 7.4 работает на компьютере с Windows, поэтому установщики EXE и MSI имеют смысл. Разделы 6.4.1 и 6.4.2 документа « Развертывание приложений JavaFX» охватывают пакеты установки EXE и MSI соответственно.

Когда я выбираю EXE в качестве пакета установщика, я вижу, что он обрабатывает собственную упаковку в соответствии с сообщением в правом нижнем углу IDE. Это показано на следующем снимке экрана.

netbeans74BuildingNativeExeHelloWorld

В первый раз, когда я попробовал это, я столкнулся с ошибкой, о которой сообщает NetBeans, с сообщением: «Для собственного установщика JavaFX требуются внешние инструменты Inno Setup 5+, установленные и включенные в PATH для создания установщика EXE. Смотрите http://www.jrsoftware.org/ ». Переход на упомянутый сайт Jordan Russell Software позволяет мне загрузить Inno Setup 5.5.4 (isetup-5.5.4.exe). В моем случае я скачал самораспаковывающийся EXE и запустил его. Затем я добавил полный путь к каталогу, в который была установлена Inno Setup 5.5.4, к моей PATH среды PATH и перезапустил NetBeans 7.4.

Когда в моей системе установлена ​​программа Inno Setup, компилятор установщика Inno Setup 5.5.4 запускается при выборе собственной упаковки NetBeans для EXE. После завершения установки NetBeans и Inno в каталоге проекта появится относительно большой EXE-файл, как показано на следующем снимке экрана.

dir_b_showsNetBeans74AppWithInno5Setup

Конечно, я могу запустить этот исполняемый файл, просто набрав его имя в командной строке. Следующий снимок экрана демонстрирует, что запуск этого исполняемого файла приводит к появлению всплывающего окна, запрашивающего утверждение для установки приложения Java.

enhancedHelloWorldInnoSetupReadyToInstall

При нажатии кнопки «Установить» начинается установка, и это демонстрируется на следующем снимке экрана.

SetupEnhancedHelloWorldInstalling

Исполняемый установщик устанавливает приложение Java как другой исполняемый файл. В этом случае это приложение устанавливается в C:\Users\Dustin\AppData\Local\EnhancedHelloWorld как показано на следующем снимке экрана.

generatedEnhancedHelloWorldApplication

Сгенерированный каталог, показанный на снимке экрана выше, включает в себя каталог «runtime» с JRE, необходимым для запуска этого приложения даже на машинах, на которых не установлена ​​JRE. Само приложение Java хранится в виде JAR в каталоге «app». Обе эти подкаталоги показаны на следующих двух снимках экрана.

generatedEnhancedHelloWorldApplicationJreDirectory

generatedEnhancedHelloWorldApplicationAppDirectory

Созданный каталог включает в себя два файла .exe . Одним из них является EnhancedHelloWorld.exe , который является исполняемым файлом приложения Java. Другой файл .exeunins000.exe . Запуск этого последнего файла .exe чисто удаляет приложение с компьютера.

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

enhancedHelloWorldFromWindowsStart

Хотя пример кода Java, с которого я начинал, можно построить как исполняемое приложение с использованием NetBeans 7.4, как показано в этом посте, гораздо интереснее использовать приложение Java с пользовательским интерфейсом. Например, можно создать исполняемое приложение с NetBeans 7.4 на основе Java-класса HelloWorldSwing .

Мои примеры в этом посте были полностью посвящены Java SE (без JavaFX), но в них использовалась поддержка встроенной упаковки NetBeans 7.4 с помощью механизмов, созданных для развертываний JavaFX. Поэтому неудивительно, что документация JavaFX по автономной упаковке приложений полезна для понимания доступных опций. Собственная упаковка с NetBeans 7.4 также демонстрируется в Собственной упаковке в IDE NetBeans .

Ссылка: Собственная упаковка Java с NetBeans 7.4 от нашего партнера JCG Дастина Маркса в блоге Inspired by Actual Events .