// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Создание встроенных пакетов в IDE NetBeans
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Создание встроенных пакетов в IDE NetBeans - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Создание встроенных пакетов в IDE NetBeans

Авторы: Петр Сомол (Petr Somol) и Алена Сташкова (Alyona Stashkova)

Возможность создания встроенных пакетов была впервые реализована в составе JavaFX 2.2 SDK. Эта возможность позволяет создавать _встроенные пакеты_ приложений и выполнять установку и запуск без внешней зависимости от системы JRE или JavaFX SDK. В дальнейшем эта возможность была добавлена в проекты Java SE.

Создание встроенных пакетов не меняет модель разработки приложения. Приложение включается в пакет как есть, вместе со средой выполнения Java, и для него создается установщик, соответствующий используемой операционной системе. Смысл заключается в том, чтобы сделать приложение независимым от любых компонентов, которые могут присутствовать или отсутствовать в среде выполнения Java на целевых машинах. Такой установщик можно запустить на машине, где не установлены никакие компоненты Java, и он успешно установит как само приложение, так и необходимые компоненты среды выполнения Java. Размер таких установщиков достаточно велик, так как даже к демонстрационному приложению "Hello world" прилагается целый комплект артефактов среды выполнения Java.

В этом практическом руководстве вы узнаете, как создать установщик  ``EXE``  приложения Java SE и установщик  ``MSI``  приложения JavaFX для операционной системы Windows, используя демонстрационные приложения, поставляемые в комплекте с IDE.

*Примечание.*

* Создаваемые установщики  ``EXE``  и  ``MSI``  зависят от платформы и будут работать только в системе, совместимой с целевой платформой Java, для которой созданы установочные пакеты  ``EXE`` / ``MSI`` . (Например, если установщик  ``EXE``  или  ``MSI``  создан на машине, где установлена 64-разрядная версия платформы JDK, его необходимо запускать на машине под управлением 64-разрядной версии Windows.)
* В Windows оба приложения установлены в каталог  ``C:\Users\<username>\AppData\Local\``  и доступны в меню 'Пуск'.


image::images/netbeans-stamp-80-74.png[title="Содержимое на этой странице применимо к IDE NetBeans 7.4 или 8.0"]


*Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.*

|===
|Программное обеспечение или ресурс |Требуемая версия 

|link:http://netbeans.org/downloads/index.html[+IDE NetBeans+] |7.4 или 8.0 

|link:http://www.oracle.com/technetwork/java/javafx/downloads/index.html[+Комплект для разработчика на языке Java (JDK)+] |7 с обновлением 25 (или более поздняя) или 8 

|link:http://www.jrsoftware.org/[+Inno Setup+] |5.5 или более поздняя 

|link:http://wixtoolset.org/[+WiX+] |3.7 или более поздняя 
|===


== Установка и добавление необходимых средств в переменную Path

Чтобы воспользоваться поддержкой создания встроенных пакетов в IDE, необходимо установить следующие средства:

* link:http://www.jrsoftware.org/[+Inno Setup 5.5+] (или более поздняя версия) требуется для создания установщиков EXE в Windows.
* link:http://wixtoolset.org/[+WiX 3.7+] (или более поздняя версия) требуется для создания установщиков MSI в Windows.

*Примечание.* Список средств, необходимых для создания установщиков для различных платформ, см. в разделе "link:http://www.oracle.com/pls/topic/lookup?ctx=nb7400&id=NBDAG2508[+Упаковка приложения во встроенный установщик+]" в документе _Разработка приложений в IDE NetBeans_.

*Установка Inno Setup:*

1. Загрузите файл  ``ispack-5.5.3.exe``  со страницы link:http://www.jrsoftware.org/isdl.php[+Inno Setup Downloads+].
2. Дважды щелкните файл, чтобы запустить установщик.
3. Примите условия лицензионного соглашения Inno Setup и нажмите 'Далее'.
4. Установите Inno Setup, следуя инструкциям мастера.

*Установка WiX:*

1. Загрузите файл  ``wix37.exe``  со страницы link:http://wix.codeplex.com/releases/view/99514[+WiX Toolset - Download+].
2. Дважды щелкните файл, чтобы запустить установщик.
3. Установите WiX, следуя инструкциям мастера.

*Добавление Inno Setup и/или WiX в системную переменную Path:*

1. В Windows 7 выберите Пуск > Компьютер > Свойства > Дополнительные параметры системы.
2. Перейдите на вкладку 'Дополнительно' и нажмите кнопку 'Переменные среды'.
3. В области 'Системные переменные' дважды щелкните переменную Path.
4. В открывшемся диалоговом окне 'Изменение системной переменной' добавьте новый путь в поле 'Значение переменной' (после точки с запятой), например:  ``C:\Program Files (x86)\Inno Setup 5 ``  или  ``C:\Program Files (x86)\WiX Toolset v3.6\bin`` .
5. Нажмите ОК, чтобы закрыть все диалоговые окна.

*Примечания*

* Проверьте, что установленное средство указано в переменной Path. Для этого откройте окно командной строки и введите  ``iscc.exe``  для Inno Setup или  ``candle.exe``  для WiX. (Если при этом окно командной строки сразу закрывается, попробуйте ввести команду  ``cmd.exe /c cmd.exe /k iscc.exe``  или  ``cmd.exe /c cmd.exe /k candle.exe``  соответственно.)
На рисунке показано окно командной строки с результатом, указывающим на успешное добавление Inno Setup в системную переменную Path.

[.feature]
--
image::images/cmd_small.png[role="left", link="images/cmd.png"]
--

* После добавления всех средств в системную переменную Path обязательно перезапустите IDE.


== Создание встроенных пакетов в проектах Java SE

Чтобы воспользоваться поддержкой создания встроенных пакетов в IDE, необходимо выполнить следующие действия:

* <<createse,Создать проект IDE>>
* <<enable,Включить поддержку создания встроенных пакетов для проекта>>
* <<buildse,Очистить и собрать проект>>
* <<instse,Упаковать приложение в установщик>>


=== Настройка проекта Java SE

Перед упаковкой приложения в установщик необходимо создать само приложение.

Создайте новый проект Java SE на основе образца игры Anagram, поставляемого в комплекте с IDE NetBeans.

*Для создания проекта IDE выполните следующие действия:*

1. В меню IDE выберите Файл > Создать проект.
2. В мастере создания проектов разверните категорию 'Образцы' и выберите Java.
3. В списке 'Проекты' выберите 'Игра Anagram'. Затем нажмите кнопку "Дальше".

[.feature]
--
image::images/new_javase_prj_small.png[role="left", link="images/new_javase_prj.png"]
--


[start=4]
. На панели 'Имя и местоположение' оставьте без изменения данные в полях 'Имя проекта' и 'Местоположение проекта'.

[start=5]
. Нажмите 'Готово'.
В IDE создается и открывается проект Java SE.

Чтобы проверить работоспособность проекта, запустите его с помощью команды 'Выполнить >Запуск проекта' в главном меню.
На компьютере должно запуститься и отобразиться приложение Anagram.

image::images/anagrams.png[]


=== Включение создания встроенных пакетов в IDE

По умолчанию команды создания встроенных пакетов в IDE отключены.

Щелкните правой кнопкой мыши проект AnagramGame в окне 'Проекты' и проверьте, доступны ли для этого проекта Java SE какие-либо действия. Как видите, контекстное меню проекта не содержит команд создания пакетов.

image::images/context_wo_pkg.png[]

*Включение создания встроенных пакетов для проекта:*

1. В окне 'Проекты' щелкните правой кнопкой мыши узел проекта и выберите 'Свойства' в контекстном меню.
2. В диалоговом окне 'Свойства проекта' выберите категорию 'Развертывание', затем выберите параметр 'Включить команды создания встроенных пакетов в меню проекта'.

[.feature]
--
image::images/enable_native_pkg_small.png[role="left", link="images/enable_native_pkg.png"]
--


[start=3]
. Нажмите ОК.
В контекстном меню проекта появится команда 'Упаковать'.

image::images/pkg_enabled.png[]


=== Сборка приложения

Теперь нужно очистить и собрать приложение для развертывания.

*Очистка и сборка проекта:*

* Выберите 'Выполнить > Очистить и собрать проект' в главном меню.
Результаты выполнения команды отображаются в окне 'Результаты'.

[.feature]
--
image::images/output_small.png[role="left", link="images/output.png"]
--

В каталоге проекта создается папка  ``dist``  с файлом  ``jar`` .


=== Создание установщика  ``EXE`` 

Теперь можно упаковать приложение в установщик для Windows.

*Сборка установщика  ``EXE`` :*

* Щелкните проект AnagramGame правой кнопкой мыши и выберите 'Упаковать в... > Установщик EXE' в контекстном меню.

*Примечание.* IDE создает установщик  ``EXE`` , только если средства Inno Setup <<tool,установлены на компьютере и добавлены в системную переменную Path>>.

IDE отображает ход выполнения и результат процесса упаковки в окне 'Результаты'.

[.feature]
--
image::images/output_se_exe_small.png[role="left", link="images/output_se_exe.png"]
--

*Примечание.* При отображении хода выполнения IDE изображение на экране может некоторое время не меняться - именно в этот момент в фоновом режиме работает Inno Setup. Процесс упаковки займет некоторое время.

Готовый установщик  ``EXE``  помещается в каталог  ``AnagramGame/dist/bundles/`` .

image::images/anagram_exe.png[]


== Создание независимых пакетов приложений в проектах JavaFX

Чтобы собрать готовое к установке приложение JavaFX, используя поддержку создания встроенных пакетов в IDE, необходимо выполнить следующие действия.

* <<createfx,Создать новый проект JavaFX в IDE>>
* <<enablefx,Включить поддержку создания встроенных пакетов для проекта>>
* <<buildfx,Очистить и собрать приложение JavaFX>>
* <<instfx,Собрать готовое к установке приложение JavaFX>>


=== Создание проекта JavaFX

Сначала необходимо создать проект JavaFX на основе образца BrickBreaker, поставляемого в комплекте с IDE.

*Создание проекта JavaFX в IDE:*

1. В меню IDE выберите 'Файл > Создать проект'.
2. В мастере создания проектов разверните категорию 'Образцы' и выберите JavaFX.
3. В списке 'Проекты' выберите BrickBreaker. Затем нажмите кнопку "Дальше".
4. На панели 'Имя и местоположение' оставьте без изменения данные в полях 'Имя проекта' и 'Местоположение проекта' и 'Платформа JavaFX'.

[.feature]
--
image::images/new_javafx_prj_small.png[role="left", link="images/new_javafx_prj.png"]
--


[start=5]
. Нажмите 'Готово'. 
Проект JavaFX BrickBreaker отображается в IDE в окне 'Проекты'.

Чтобы проверить работоспособность проекта, запустите его с помощью команды 'Выполнить >Запуск проекта (BrickBreaker)' в главном меню.
На компьютере должно запуститься и отобразиться приложение Brick Breaker.

[.feature]
--
image::images/brickbreaker_small.png[role="left", link="images/brickbreaker.png"]
--


=== Включение создания встроенных пакетов для проекта

Чтобы воспользоваться поддержкой создания встроенных пакетов для проекта в IDE, необходимо сначала включить эту поддержку.

Если щелкнуть проект Brick Breaker правой кнопкой мыши, в контекстном меню не будет команд создания встроенных пакетов.

image::images/javafx_wo_pkg.png[]

*Включение команд создания встроенных пакетов для проекта в контекстном меню:*

1. В окне 'Проекты' щелкните правой кнопкой мыши узел проекта и выберите 'Свойства' в контекстном меню.
2. В диалоговом окне 'Свойства проекта' в категории 'Сборка' выберите 'Развертывание', затем выберите параметр 'Включить создание встроенных пакетов'.

[.feature]
--
image::images/enable_native_pkg_fx_small.png[role="left", link="images/enable_native_pkg_fx.png"]
--


[start=3]
. Нажмите ОК.
В контекстном меню проекта появится пункт 'Упаковать'.

image::images/pkg_fx_enabled.png[]


=== Сборка приложения

Приложение JavaFX готово к очистке и сборке.

*Очистка и сборка проекта:*

* Выберите 'Выполнить > Очистить и собрать проект' в главном меню.
Результаты выполнения команды отображаются в окне 'Результаты'.

*Примечание.* Если сборка выполнена успешно, но в окне 'Результаты' отображается  ``предупреждение: [options] путь класса bootstrap не задан в связи с -source 1.6`` , необходимо указать JDK 8 в качестве исходного/двоичного формата в свойствах проекта и выполнить повторную очистку и сборку:

1. Щелкните проект BrickBreaker правой кнопкой мыши в окне 'Проекты' и выберите 'Свойства'.
2. В диалоговом окне 'Свойства проекта' выберите категорию 'Источники'.
3. В списке 'Исходный/двоичный формат' выберите JDK 8 и нажмите ОК.
4. Щелкните проект BrickBreaker правой кнопкой мыши в окне 'Проекты' и выберите 'Очистить и собрать' в контекстном меню.


=== Создание установщика  ``MSI`` 

Теперь можно упаковать приложение в установочный пакет для определенной операционной системы Windows.

*Сборка установщика  ``MSI`` :*

* Щелкните проект BrickBreaker правой кнопкой мыши и выберите 'Упаковать в... > Установщик MSI' в контекстном меню.

*Примечание.* IDE создает установщик  ``MSI`` , только если средства WiX <<tool,установлены на компьютере и добавлены в системную переменную Path>>.

IDE отображает ход выполнения и результат процесса упаковки в окне 'Результаты'.

[.feature]
--
image::images/output_fx_msi_small.png[role="left", link="images/output_fx_msi.png"]
--

*Примечание.* При отображении хода выполнения IDE изображение на экране может некоторое время не меняться - именно в этот момент в фоновом режиме работает WiX. Процесс упаковки займет некоторое время.

Готовое к установке приложение JavaFX помещается в каталог  ``BrickBreaker/dist/bundles/`` .

image::images/brickbreaker_msi.png[]


== [[Проверка готовых к установке приложений]] 

После создания установщиков  ``AnagramGame-1.0.exe``  и  ``BrickBreaker-1.0.msi``  необходимо проверить, в какой каталог установлены приложения Anagram и BrickBreaker в родной системе.

*Проверка установщиков:*

1. Перейдите в каталог с файлом установщика ( ``AnagramGame-1.0.exe``  или  ``BrickBreaker-1.0.msi`` ) на жестком диске.
2. Дважды щелкните файл, чтобы запустить установщик.

Оба приложения должны установиться в каталог  ``C:\Users\<username>\AppData\Local\``  и появиться в меню 'Пуск'.


== См. также

* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG2508[+Упаковка приложения как встроенного установщика+] в документе _Разработка приложений в IDE NetBeans_
* link:http://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm[+Развертывание приложений JavaFX. Создание независимых пакетов приложений+]
* link:http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html[+Упаковка приложений Java для распространения на Mac+]
link:/about/contact_form.html?to=3&subject=Feedback:%20Native%20Packaging%20In%20NetBeans%20IDE[+Отправить отзыв по этому учебному курсу+]


link:../../trails/matisse.html[+Возврат к учебной карте+]

