Перейти к содержимому

Как компилировать в intellij idea

  • автор:

Как в IntelliJ IDEA написать и собрать в исполняемый .exe файл приложение на JavaFX

https://psiola-center.ru/wp-content/uploads/8/1/1/81134bcfd8aedee7cf9ebe292a83861f.jpeg

Как я уже писала в своей предыдущей статье, недавно, после двухлетнего обучения (обещали 12 месяцев, но жизненные и геополитические обстоятельства внесли свои коррективы в сроки получения дополнительного образования), я стала java-разработчиком.

Завершение обучения требовало написания выпускного проекта, которым я, изрядно поразмыслив, решила «убить сразу несколько зайцев»:

проект должен быть написан мной самостоятельно (без команды),

быть законченным и полноценным с точки зрения «бэка и фронта»,

функционал проекта должен нести какую-то информативную пользу,

проект станет подарком на день рождения.

Вспомнив все, чему меня «пытались научить», я решила, что за 1,5 месяца, отведенных на выпускную работу (с учетом загруженности по основному месту своей занятости), я вполне самостоятельно справлюсь с написанием оконного приложения для рабочего стола по предоставлению пользователю текущих и прогнозных значений погоды. Оболочку приложения решила выполнить на JavaFX, а для получения данных о погоде использовать JSON.

Когда я выслала преподавателю техническое задание с характеристиками проекта, он, восседая на удобном кресле где-то в пригороде германского города Мюнхен, меня, великовозрастную студентку из Санкт-Петербурга, «обрадовал и окрылил» тем, что знания по JavaFX в реальной жизни мне не пригодятся, и я рискую впустую потратить время…

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

Процесс и трудности, с которыми пришлось столкнуться

Не особо вдумываясь в тонкости платформы JavaFX и ее представлении в выпусках Java-8, я решила писать приложение на JDK-1.8 в среде разработки IntelliJ IDEA Community Edition, используя maven.

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

и, нажав на кнопку «Next», получила неожиданное для себя сообщение:

Да-да, я не знала той тонкости, что JavaFX, представленный как часть выпуска Java-8, был удален из JDK и перенесен в отдельный модуль в Java-11.

Ну что же, начав все сначала, я выбрала JDK-11.0.2, и у меня чудесным образом создался проект с необходимыми классами и ресурсными файлами, со всеми нужными зависимостями и способами сборки, автоматически прописанными в pom.xml файле:

Чтобы проверить, действительно ли работает минимальный функционал будущего приложения, я запустила класс HelloApplication.java и получила результат, свидетельствующий, что все в порядке:

Далее была длительная полуторамесячная работа над проектом, в процессе которой:

я внесла изменения в базовый код, сформированный IntelliJ IDEA автоматически,

создала сцены с помощью JavaFX Scene Builder 2.0,

установила получение информации по JSON,

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

С финальной версией проекта и демонстрацией его возможностей можно ознакомиться на GitHub.

Теоретически, проект готов, образовательная цель достигнута, его можно сдать как выпускную работу и выдохнуть.

Но, не забываем, программа должна была стать подарком на день рождения. У именинника не установлена Java, чтобы запустить jar-файл проекта и наслаждаться результатом работы приложения. Значит, нужно собрать проект в исполняемый .exe файл, который будет запускаться на любом устройстве с установленной системой Windows.

«Ерунда какая!» — подумала я, — «У меня же IntelliJ IDEA, она все сама соберет и подскажет, в случае чего».

Захожу в File -> Project Settings -> Artifacts -> JavaFx application -> From Module ‘имя модуля’

Добавляю к артефакту всю библиотеку зависимостей, что у меня есть в проекте (краем глаза вижу красные символы, которые должны бы вызвать тревогу и заставить меня призадуматься, но я так увлечена процессом, что не придаю им значения):

Заполняю сведения об основном классе, который запускает приложение (поле Application class):

В той же вкладке указываю значение «all» в поле Native bundle и применяю настройки:

После вхожу в режим Build -> Build Artifacts, выбираю только что созданный артефакт и… получаю сообщение, что используемая версия JDK не способна собрать мой проект в необходимый пакет:

Начитавшись всего, чего только возможно, во всемирной паутине, я решаюсь на эксперимент:

1. Заменила в pom.xml файле версию Java 11 на 8, обновилась:

2. В File -> Project Structure -> Project указала корректную версию используемой SDK:

3. Закомментировала (можно удалить) файл module-info.java, сформированный Java-11 автоматически при создании проекта:

4. Проверила, запускается ли приложение до сборки:

5. Описанными выше способами снова создала и собрала артефакт. Но! – опять получила ошибку:

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

И изменение имени учетной записи Windows вручную не приведет к изменению имени пользовательской папки.

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

Запускаемый .exe файл располагается в папке out\artifacts\название артефакта\bundles\название проекта:

Вместо заключения

При кажущейся простоте создания приложения на JavaFX (особенно с помощью JavaFX Scene Builder 2.0 и бесплатных видео-уроков на различных ресурсах), написание функционала программы – это только половина пути. Программа должна работать, жить своей жизнью самостоятельно, без привязки к среде разработки. И, как показывает мой личный опыт, при сборке проекта и выпуске его в «большой мир» приходится преодолевать немало терний.

Compiling and Running

Use IntelliJ IDEA to run your Hello World application.

Now you have written your ‘HelloWorld.java’ class, you need to compile and run it. IntelliJ IDEA can do this for you. There are lots of ways you can run an application but to start with, you can click the green arrows to the left of the method. These are known as gutter icons.

You’ll notice that there are two green arrows. The top one is adjacent to the class, and it will run the class. Our class only contains Java’s main method so that is all that it will run. However, if you’re working with classes with multiple tests in for example, using this green run arrow will run all the tests in the class.

The second green arrow is adjacent to Java’s main method. Clicking this will run Java’s main method. For the purpose of our application, both the green arrows do the same thing. When you click on the green arrow you’ll get different options including debug, but we will just run it for now so select that option.

Running the class from the gutter icons

IntelliJ IDEA will now compile the file into a class file and then run it. The output of the run is shown in the Run tool window at the bottom of your screen.

The Run Window

Let’s take a look at your Run Window in more detail.

Run window

The first line shows the command that was used to run the program. We don’t usually need to worry about what this was, but it’s useful to know in case you want to see exactly what was run and how. For example, if you scroll to the right you will see com.example.helloworld.HelloWorld . This tells you that it was your HelloWorld class that was run. You can also see exactly which JDK was used, which can be useful if you have multiple versions of Java on the same machine.

The second line in this window is the output of your program — the "Hello World" statement that you told it to print.

The last line, which says Process finished with exit code 0 shows the program ran without an error.

What IntelliJ IDEA Created

Let’s take a quick look at what happened when you ran the application. IntelliJ IDEA compiled your HelloWorld.java file into a class file. By default, the IDE created a folder called out . Production code, meaning code that isn’t test code, is put into the production folder within the out folder. IntelliJ IDEA creates a folder for our HelloWorld project and then the directory structure for our package. The compiled class file HelloWorld.class can be found at the end of this directory hierarchy.

Out folder directory structure

Run Configurations and Shortcuts

IntelliJ IDEA also created a run configuration for the application we ran. If you want to, you can run or debug any run configurations from the navigation bar. We will take a more detailed look at run configurations later in this tutorial.

Run configuration in the navigation bar

If you want to go back to the Run Window, you can use Cmd+4 on macOS, or Alt+4 on Windows to open it and the same shortcut again to close it and return the focus back on the editor.

Как проводится компиляция в IntelliJ IDEA

Как проводится компиляция в IntelliJ IDEA

От автора: если бы не было таких мощных и качественных инструментов, как IntelliJ IDEA, компиляция занимала бы слишком много времени у разработчика — ведь это нужно собрать все файлы в единую программу, а после корректно запустить ее. К счастью, благодаря высокоразвитым IDE вся сложность заключается в настройке компилятора, а не каждого отдельного файла, поэтому в процессе работы с IntelliJ IDEA компиляция делается очень просто. Сегодня мы расскажем, как конфигурировать эту IDE для успешной сборки.

Как проводится компиляция в IntelliJ IDEA

Знакомство с компилятором

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

До того, как появились компиляторы, все, с чем вы сталкиваетесь сегодня, делалось вручную. Но по мере развития продуктов данный софт стал необходим. Это программы, которые могут переводить код, написанный на высокоуровневом языке программирования, в низкоуровневый код, то есть в нули и единицы. Таким образом, процессор может понять то, что сказал человек.

Компиляторы бывают нескольких видов. Точно так же и процесс компиляции бывает разным. Все зависит от того, какой язык используется (компилируемый/интерпретируемый) и какое применяется программное обеспечение для взаимодействия. Кстати, раньше этот вид ПО называли «программирующими программами». Этимологическая логика здесь проста: это был инструмент, который заставлял компьютер выполнять код — то есть, программировал его.

Онлайн курс «Веб-разработчик с нуля до PRO»

Изучите курс и разработайте полноценную CRM-систему управления контактными данными клиентов

Вы научитесь верстать сайты на HTML и CSS, изучите JavaScript. Сможете разрабатывать на PHP серверную часть сайта — и сделаете первые проекты для портфолио.

Исполнительные файлы

Вы привыкли к тому, что готовая программа должна запуститься на вашем компьютере. И потому хотите, чтобы это происходило на каждом удобном вам ПК. И они так могут. Главное, чтобы на ПК или любом другом устройстве была установлена исполнительная среда Java. Она встречается не только на компьютерах, но и на всех остальных системах, вроде бытовой техники.

Как правило, новички сразу ищут в IntelliJ IDEA возможность провести эту процедуру и превратить написанный ими код в .exe файл. Вынуждены вас огорчить, но это невозможно. Суть в том, что это противоречит самой концепции языка, не говоря уже о физической возможности. «Написано единожды — работает везде».

Тем не менее, неужели невозможно делать программы для Windows на языке Java? Конечно, можно, и готовые файлы будут иметь расширение .exe. Вот только дело тут не в компиляции. Программист должен сделать обертку для программы, чтобы она запустила Java Runtime Machine и Java-код вне глаз пользователя. И это действительно работающее решение.

Настройка проще, чем кажется

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

В диалоговом окне «Settings/Preferences» выберите Build, Execution, Deployment.

На странице компилятора вы можете, например, изменить регулярное выражение, описывающее расширения файлов, которые будут распознаваться как ресурсы. Используйте точки с запятой (;) для разделения отдельных шаблонов.

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

Замечания:

На странице Java Compiler проверьте, является ли используемый компилятор тем, который вам нужен. При необходимости выберите другой компилятор.

На странице Annotation Processors настройте параметры обработки аннотаций.

Примените изменения и закройте диалог.

Онлайн курс «Веб-разработчик с нуля до PRO»

Изучите курс и разработайте полноценную CRM-систему управления контактными данными клиентов

Вы научитесь верстать сайты на HTML и CSS, изучите JavaScript. Сможете разрабатывать на PHP серверную часть сайта — и сделаете первые проекты для портфолио.

На этом заканчиваем рассказ о компиляции. Вам нужно запомнить два основных тезиса: компилятор IDEA нуждается в настройке, компиляции jar в exe не существует. Это совершенно другой, абсурдный процесс. И это не просто балластное знание. Оно убережет вас от скачивания утилит, которые обещают подобное чудо.

Как в Windows скомпилировать и запустить игру Java с помощью IntelliJ IDEA

Для запуска старых или несовместимых с Windows игр и приложений традиционно используются эмуляторы или виртуальным машины, но иногда можно обойтись и без них. Мы уже разбирали возможности запуска Java-игра с использованием эмулятора KEmulator Lite и платформы Sony Ericsson SDK, сегодня мы предлагаем рассмотреть еще один способ запуска, на этот раз путем компиляции исходного кода игр Java с помощью платформы разработчика IntelliJ IDEA. Как и обещали.

  1. Исходный код Java-игр или приложений. Исходники имеются в свободном доступе на площадке GitHub , например, на странице github.com/topics/java-game. Скачивать исходники необязательно, так как IntelliJ IDEA умеет работать со ссылками на опубликованные проекты.
  2. Сама платформа IntelliJ IDEA. Скачать ее можно с официального сайта www.jetbrains.com/ru-ru/idea, сгодится и Free -версия. Устанавливается платформа как обычная программа, в настройках можно ничего не менять.
  3. Компонент Java Development Kit актуальной версии. Загрузить и установить его можно отдельно, но опять же в этом нет нужды, так как установка компонента поддерживается платформой IntelliJ IDEA.

Компиляция приложений и игр Java

Итак, переходим на страницу github.com/topics/java-game и выбираем понравившуюся игру. Рекомендуем отдавать предпочтение проектам, более или менее стабильно обновляющимся. Копируем в браузере ссылку на проект.

GitHub

Запускаем IntelliJ IDEA, жмем «Get from VCS».

IntelliJ IDEA

И вставляем ссылку в поле URL открывшегося окна. Поле «Directory» будет заполнено автоматически. Содержит оно путь к локальной папке создаваемого пользователем проекта, при желании путь можно выбрать свой.

Get from VCS

Для дальнейшей работы потребуется установить компонент Git – нажмите тут же в текущем окне ссылку «Download and Install» и дождитесь завершения фоновой процедуры инсталляции. Нажмите кнопку «Clone», чтобы загрузить файлы игры в локальную папку проекта.

Clone

Вылезут диалоговые окошки – нажмите в них подтверждающие действия кнопки.

Диалоговые окошки

После того как файлы проекта будут скопированы и проиндексированы,

Файлы проекта

в верхней области окна может появиться предупреждение «JDK 1.8 is missing», то есть отсутствует компонент Java Development Kit 1.8. Загрузите и установите его, нажав ссылку «Download Amazon Corretto 1.8».

JDK 1.8 is missing

После этого можно будет приступать к созданию билда игры, для чего в главном меню выбираем опцию «Build»«Build Project».

Build

По завершении построения билда выбираем в меню «Run»«Run ‘GameWindow’».

Run

И подтверждаем выбор в диалоговом окошке.

Run GameWindow

В результате игра будет скомпилирована и запущенна в отдельном окне.

Игра скомпилирована и запущенна

Конечно, все получится при условии, что в процессе компиляции не возникнут ошибки, что не исключено. Особенно это касается проектов Java на GitHub или другом ресурсе, которые давно проверялись и не обновлялись разработчиками.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *