Тутор: упаковка программы
Может быть желательно запаковать программу в один файл так, чтобы программа работала по двойному клику мышки. Это нужно например в случае когда вы сделали игру/программу и захотели поделиться ею с друзьями. А т.к. им может быть неудобно/долго/сложно компилировать программу самим, то хочется отправлять уже готовое приложение.
В общем случае в реальном мире это делается относительно сложно с помощью сборочных инструментов вроде Ant, Maven или Gradle. Но нам подойдет и более простой способ - с помощью встроенной в Intellij IDEA функциональности.
0) Нужен готовый проект
Для того чтобы было что запаковывать в приложение нужен проект открытый в Intellij IDEA, который можно запустить. Т.е. в этом проекте есть main
функция, которая будет являться точкой входа в приложение, т.е. будет запускаться в момент двойного клика по запакованной программе.
Дальше будет предполагаться что класс в котором определена желаемая main
функция называется Monoceros
.
1) Настройка упаковки в пакет
File
->Project Struture
->Artifacts
- Зеленый плюсик сверху-слева ->
JAR
->From modules with dependencies...
- Справа от
Main Class
нажав на три точки нужно выбрать классMonoceros
- Убедиться, что выбран вариант
extract to the target JAR
- Нажать
Ok
- Еще раз нажать
Ok
2) Компиляция пакета
Теперь можно собирать пакет приложения:
Build
->Build Artifacts...
- Выбираете нужный артефакт, и жмете
Build
Теперь в подпапке проекта out/artifacts/<ArtifactName>_jar/
лежит упакованный jar
файл. Его можно запустить на любом компьютере, на котором установлена Java-машина (она же JVM
, она же JRE
).
3) Запуск jar-пакета
Двойного клика должно быть достаточно. Но зависит от операционной системы, так что если не будет работать на вашей - напишите мне.
4) Если несколько main-функций
Есть несколько вариантов что делать, если у вас есть несколько main
-функций. По сути это означает что у вас есть несколько программ. Например сервер и клиент. Самый простой вариант - выполнить эту инструкцию два раза для каждого класса, в котором есть main
-функция, тогда будет несколько jar
-пакетов.
Если вдруг не запускается
Запустите терминал (как это сделать - гуглится по windows N how to run command prompt
, где N
- ваша версия ОС). Вероятно почти везде сработает открыть главное меню (пуск или меню-плитка), там запустить программу Выполнить
, в ней ввести cmd
и нажать Enter
.
В появившемся черном текстовом окне перейдите в папку где находится <ArtifactName>.jar
:
Например если файл находится по пути C:\A\B\C\<ArtifactName>.jar
то надо выполнить две команды:
C:
cd A\B\C
Теперь надо запустить явным образом jar
-файл (то же самое происходит при двойном клике):
java -jar <ArtifactName>.jar
Скорее-всего как и при двойном клике программа на самом деле запускается но падает на старте, и поэтому создается впечатление что она не запустилась, хотя на самом деле она просто быстро упала.
Преимущество явного запуска из консоли в том, что ошибки приложения будут видны в консоли (аналогично тому, как они были видны в консоли среды разработки).