Тутор: упаковка программы
Может быть желательно запаковать программу в один файл так, чтобы программа работала по двойному клику мышки. Это нужно например в случае когда вы сделали игру/программу и захотели поделиться ею с друзьями. А т.к. им может быть неудобно/долго/сложно компилировать программу самим, то хочется отправлять уже готовое приложение.
В общем случае в реальном мире это делается относительно сложно с помощью сборочных инструментов вроде 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
Скорее-всего как и при двойном клике программа на самом деле запускается но падает на старте, и поэтому создается впечатление что она не запустилась, хотя на самом деле она просто быстро упала.
Преимущество явного запуска из консоли в том, что ошибки приложения будут видны в консоли (аналогично тому, как они были видны в консоли среды разработки).