Как скомпилировать java в intellij idea
Перейти к содержимому

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

  • автор:

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

В прошлой теме мы рассмотрели, как создавать первую программу с последующим ее запуском в командной строке. Однако в реальности, как правило, крупные программы разрабатываются не при помощи простого текстового редактора, а с использованием таких средств как IDE или интегрированные среды разработки, которые упрощают и ускоряют написание кода и создание приложений. На данный момент одной из самых популярных сред разработки для Java является IntelliJ IDEA от компании JetBrains. Рассмотрим, как использовать данную среду.

Прежде всего загрузим установочный дистрибутив с официального сайта https://www.jetbrains.com/idea/download. По этому адресу можно найти пакеты для Windows, MacOS, Linux. Кроме того, сама среда доступна в двух версиях — Ultimate (платная с триальным бесплатным периодом) и Community (бесплатная). В данном случае выберем бесплатную версию Community .

Установка IntelliJ IDEA

Конечно, Community-версия не имеет ряда многих возможностей, которые доступны в Ultimate-версии (в частности, в Community недоступны опции для веб-приложений на Java). Но Community-версия тоже довольно функциональна и тоже позволяет делать довольно много, в том числе приложения на JavaFX и Android.

После установки запустим IntelliJ IDEA и создадим первый проект. Для этого на стартовом экране выберем New Project :

Создание проекта в IntelliJ IDEA

Далее откроется окно создания проекта. В левой части в качестве типа проекта выберем Java.

Создание проекта Java в IntelliJ IDEA

В поле Name укажем имя проекта. В моем случае проект будет называться HelloApp.

В поле Location можно указать путь к проекту, если не устраивает путь по умолчанию.

Поскольку мы будем работать с языком Java, в поле Language выберем пункт Java

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

После этого нажмем на кнопку Create. После этого среда создаст и откроет проект.

Первый проект на Java в IntelliJ IDEA

В левой части мы можем увидеть структуру проекта. Все файлы с исходным кодом помещаются в папку src . По умолчанию эта папка пуста, никаких файлов кода у нас в проекте пока нет. Поэтому добавим файл с исходным кодом. Для этого нажмем на папку src правой кнопкой мыши и в контекстном меню выберем пункт New -> Java Class :

Добавления файла с кодом в проект на Java в IntelliJ IDEA

После этого нам откроется небольшое окошко, в которое надо ввести имя класса. Пусть класс будет называться Program :

Добавления класса в проект на Java в IntelliJ IDEA

После нажатия на клавишу Enter в папку src будет добавлен новый файл с классом java (в случае выше класс Program). А в центральной части откроется его содержимое — собственно исходный код:

Создание класса на Java в IntelliJ IDEA

Изменим код класса следующим образом:

public class Program < public static void main(String[] args) < System.out.println("Hello Java!"); >>

С помощью зеленой стрелки на панели инструментов или через меню Run -> Run. запустим проект.

запуск проекта на Java на выполнение в IntelliJ IDEA

И внизу IntelliJ IDEA отобразится окно вывода, где мы можем увидеть результат работы нашей программы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Замечания:

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

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

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

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

Как создать исполняемый jar в Intellij IDEA / how to create jar in IDEA

Как оказалось, не так то и просто найти в просторах интернета информацию об этом. Есть много ссылок на то, как это делается в Eclipse, а про Intellij IDEA сказано не многим больше нуля. Поэтому я создал этот пост. Как создать исполняемый jar в Intellij IDEA / how to create jar in IDEA - 1IntelliJ IDEA дает возможность быстро создавать исполняемый JAR-файл вашей программы, содержащий модули со всеми зависимостями. Для того, чтобы создать JAR, необходимо проделать всего 3 пункта:

  1. Нажмите кнопку ‘+’ в диалоговом окне Project Structure и выберите соответствующий пункт (Рисунок 1):
    Как создать исполняемый jar в Intellij IDEA / how to create jar in IDEA - 2Рисунок 1 – Project Structure -> Artifacts -> Jar -> From modules with dependencies
  2. Далее IntelliJ IDEA показывает диалог, позволяющий настроить новый артефакт (Рисунок 2):
    Здесь нужно выбрать главный класс вашего проекта и нажать ОK
    Как создать исполняемый jar в Intellij IDEA / how to create jar in IDEA - 3Рисунок 2 – Диалог создания нового артефакта JAR
  3. После нажатия клавиши ОК, вы можете создать файл Jar с помощью пункта меню Build -> Build Artifact
    По умолчанию все библиотеки будут извлечены в целевой Jar. Сам исполняемый файл будет сгенерирован в директории out -> artifacts вашего проекта (Рисунок 3):
    Как создать исполняемый jar в Intellij IDEA / how to create jar in IDEA - 4Рисунок 3 – Месторасположение сгенерированного JAR файла
    Все, теперь исполняемый файл можно запускать.
  • Тестовое задание: «Написать Интерпретатор на язык BrainFuck»
  • Тестовое задание «Image Comparison»
  • Java — быстрее, сильнее и выше! Зарплаты украинских программистов
  • История успеха спустя 1.5 года от начала обучения
  • Технические вопросы на собеседовании
  • Как найти работу? Рассылка резюме
  • Профессиональное выгорание. Как устоять?
  • Английский для IT и для собеседования
  • Паттерн Command своими словами
  • Паттерн Singleton своими словами
  • Помогите, нужна мотивация!

Как в 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 и бесплатных видео-уроков на различных ресурсах), написание функционала программы – это только половина пути. Программа должна работать, жить своей жизнью самостоятельно, без привязки к среде разработки. И, как показывает мой личный опыт, при сборке проекта и выпуске его в «большой мир» приходится преодолевать немало терний.

Надеюсь, что моя статья поможет кому-нибудь избежать ошибок, найти ответы на вопросы или просто сразу пойти правильным путем (например, создавать обычный maven-проект на Java-8, вручную прописывая в pom.xml зависимости и способ сборки, и всегда указывать на латинице имена учетных записей, директорий в своей операционной системе).

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

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