Intelij idea — Создание исполняемого jar файла в Intelij IDEA


пытаясь создать исполняемый файл jar в IntelliJ IDEA

Я пытаюсь создать файл JAR для проекта Tornadofx,

он работает нормально, когда я запускаю основную функцию в my.kt(seri/src/main/kotlin/my.kt)

работает под управлением Windows 10, Intelli IDEA 2020.1.1 я сделал JAR-артефакт в структуре проекта, и «построить артефакты» из меню сборки, он создал JAR файл, но он не работает, показывает ошибку «Ошибка: не удалось найти или загрузить основной Класс com.serious.MyApp Причина: java.lang.NoClassDefFoundError: tornadofx/App «

Не уверен, что это оптимальное решение, но вы можете использовать теневой плагин для Gradle. Это позволяет легко создавать JAR файлы FAT/Uber. Все, что вам нужно сделать, это немного изменить ваш файл build.gradle:

А затем запустите задачу с именем ‘shadowJar’. Жирная банка будет помещена в /build/libs/ .

Записки программиста Программирование и не только

[Java] Подключаем чужие исходники в IntelliJ IDEA

В статье предлагается попробовать себя в роли разработчика Рогалика (Rogue-like) — игрушки, в которых вместо графики используется ASCII символы.

Разберем, как же подключить правильно сторонние библиотеки, чтобы всё работало.

Необходимо скачать две (а не одну, как сказано в статье) библиотеки: jcurses и libjcsi
Для скачивания исходников для libjcsi понадобится SVN клиент (надо будет написать про них немного)
Или можно взять тут: http://axis.bplaced.net/wp-content/uploads/2012/10/libjcsi.zip
Качаем исходники (Source) и распаковываем их куда-нибудь. У меня это C:\JavaLib\jcurses и C:\JavaLib\libjcsi

Создаём новый модуль (или открываем старый) и добавляем туда новый класс Rogalic .

Заходим в File -> Project Structure
Раздел Module, вкладка Dependencies.

Выбираем Create module from existing sources и жмем «. »

Жмем Next до упора и потом Finish (всё по умолчанию, все окна практически пустые)

Повторяем тоже самое для libjcsi

Теперь добавляем зависимости.
Жмем на модуль Net и затем справа на «+» -> Module dependency

Выбираем там Jcurses

Теперь выбираем наш родной модуль и повторяем операцию. Только теперь выбираем Net

Закрываем всё. Должно получиться как-то вот так

Теперь пишем в классе Rogalic следующее:

Запускаем!
Если всё сделано правильно, то должно появиться окно с довольной «собакой (@) — главным героем всех Рогаликов. Ну, почти всех :)
Им можно шаволить курсорными стрелками.

Как создать Jar файл в Maven

В этом уроке я покажу вам, как использовать Maven для создания Java проекта и упаковать его в *.jar файл, а также как сделать его исполняемым.

1) Создание Maven проекта.

Есть два способа создать Maven project:

1. С помощью maven command:

2. С иcпользованием IDE, в моем случае это Intellij IDEA 11.3

2. Создание jar файла

Чтобы создать jar файл нам потребуется добавить в конфигурационный Maven файл pom.xml.

В этом файле в теге

Если вы попытаетесь собрать проект Maven, Maven упакует этот проект в “jar” файл с именем «projectMy-1.0.jar» , найти этот файл вы можете в корне проекта в папке target .

3. Делаем *.jar исполняемым.

Для того, чтобы *.jar файл был исполняемый, мы должны объявить точку входа в приложениe через maven-jar-plugin в pom.xml

Чтобы выполнить jar файл, используйте java -jar :

Пишем плагин для IntelliJ IDEA, добавляем функциональности редактору кода

Начало

Для начала стоит скачать исходники community версии IDE, т.к. времени это займёт достаточно много, общий размер около 1,6 Гб.
Репозиторий git:
git://git.jetbrains.org/idea/community.git

Действие это необязательное, но очень желательное, т.к. здесь мы найдём java доки интересующих нас классов и методов, а также исходники готовых плагинов (практически весь код ниже я подглядел в них).


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

В целом, для разработки плагина не требуется ничего, кроме IntelliJ IDEA. Я использовал коммерческую версию, поэтому все действия далее проводятся на ней. Значительных отличий от community редакции быть не должно.
Создаём проект плагина: File -> New Project…
Выбираем пункт IntelliJ Platform Plugin

Если отсутствует Project SDK, нажимаем New… и указываем папку, куда установлена Idea.
Жмём Finish.

Добавление java доков

Необязательный шаг.
После закачки исходников IDE, жмём File -> Project Structure… и на закладке Sourcepath указываем путь к исходникам:

Цукерберг рекомендует:  Cекундомер на CSS3

Теперь разработка и дебаг плагина станет проще.
Например, было:

Структура плагина

Про структуру плагина в Idea можно почитать здесь.
Любой плагин для Idea, это .jar файл, содержащий конфигурационный файл plugin.xml в папке META-INF и код, отвечающий за работу плагина.

Необходимо заполнить некоторые данные в plugin.xml. На этом этапе, ничего сложного в заполнении нет.

Actions

В Idea работает так называемая Action System. Она позволяет плагинам добавлять свои действия в меню, на тулбар и т.д. Actions организованы в группы, которые в свою очередь могут содержать другие группы. Каждый Action имеет уникальный идентификатор. Большинство стандартных идентификаторов определено в файле IdeActions.java

Action является обычным java классом, который наследуется от абстактного класса AnAction . Мы будем наследоваться от более конкретного EditorAction .
Action можно создать через граф. интерфейс: пр. кн. мыши на package -> New -> Action:

Выбрав необходимую группу, по необходимости можно задать комбинацию клавиш на новый Action, будет создан класс наследник AnAction , а в plugin.xml, в секцию будет добавлено описание Action класса.
Дадим имя нашему Action классу — CopyLineUpAction.
Теперь внутри тега файла plugin.xml будет следующий код:

Обратите внимание, мы определили комбинацию клавиш Ctrl+Alt+Up по умолчанию. Я использовал стандартную комбинацию Eclipse, т.к. привык к ней. В настройках Idea эту комбинацию можно будет переопределить.

Отладка

Сборка и установка плагина

Чтобы собрать плагин, выбираем в меню Build -> Prepare Plugin Module ‘plugin name’ For Deployment. Будет создан .jar файл в директории проекта.
Установка прагина производится через File ->Settings… -> IDE Settings -> Plugins -> Install plugin from disk…
В настройках Keymap мы увидим такую строчку:

Создаем программу Hello World в JavaFX в IntelliJ IDEA

Пост вольный перевод статьи:

Для начала создаем проект JavaFX

Выбираем JavaFX и жмем Next

Даем имя проекту и жмем Finish.

Контроллер — это класс, предназначенный для непосредственной обработки запросов от клиента и возвращения результатов.

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

Основная задача методов контроллера — определить требуемое действие, корректно принять данные, корректно возвратить результат. При тестировании методов клиента рекомендуется проверять не фактическую обработку данных, а корректный вызов всех команд в методе — предполагая, что алгоритм работы этих методов продуман верно.

Файл sample.fxml отвечает за интерфейс пользователя.

Переименовываем Controller в файле Controller.java

1. Наводим на имя класса-контроллера (Controller), выбираем Refractor->Rename и меняем имя класса-контроллера:

Жмем enter и завершаем рефракторинг. В файле sample.fxml должно было измениться имя класса контроллера: fx:controller=»sample.SampleController»

Важный момент, конструкция fx:id будет использоваться часто, она означает, что мы работаем с объектом класса Controller.

Создадим кнопку в интерфейсе пользователя, для этого в файл sample.fxml добавим следующие сточки:

Возможно, понадобиться руками добавить:

Как видите sayHelloWorld отмечен красным цветом, а helloWorld выделен.

Используя встроенные функции IDEA создадим поле helloWorld в файле SampleController.java

Жмем enter, завершаем рефракторинг.

Далее создаем функцию sayHelloWorld встроенными способами IDEA:

Жмем enter и завершаем рефракторинг.

Добавляем действие в функцию sayHelloWorld:


Результат работы программы:

Добавим стили в нашу программу.

В файл sample.fxml добавим следующий текст:

Встроенными методами IDEA создадим файл sample.css

В файл sample.css добавляем текст:

-fx-background-color: gold; //Цвет заднего фона окна

-fx-font-size: 20; //Высота текста Hello World

Результат работы программы:

Найдены дубликаты

Мда .. шёл 2020 год. Только сегодня попробовал JavaFX и офигел. Ну и шняга! Вот мне интересно, java ведь самый распространённый язык мира. Почему же тут так много сделано через жопу ?
Качаем jde с сайта оракл. Ставим. Прописываем переменные в path.

Качаем jdk с сайта оракл. Ставим. Прописываем переменные в path.

Качаем intellij idea с другого сайта (потому что эклипс и нетбин ещё хуже). Ставим, указываем путь к jdk.
Так, пробуем создавать форму с JavaFx (потому что swing вроде как устарел давно и всюду). Мля .. нету SceneBuilder! Качаем его с другого сайта. Ставим, указываем путь.
Обычно, кинув кнопку на форму, я ожидаю, что по двойному клику IDE _сама_ создаст событие «нажатие на кнопку» и переместит меня туда. Ха! Для java это слишком просто — будьте любезны херачить всё руками (а если у меня 30 элементов на форме ? )
Так, я хочу написать сервлет. ах, да! Совсем ведь забыл, для этого надо качать и покупать intellij idea ultimate.
Загуглим-ка учебные материалы по java. В рунете большинство курсов начинается с написания java-кода в блокноте и компиляции его в командной строке. Бл#дь, вы серьёзно ?
И да, я все эти шаги проходил, поэтому они мне знакомы. А сколько времени потратит новичок на то, чтобы во всём этом разобраться ?
Даже грёбанная 1С и то куда юзер-френдли. Вот у меня и вопрос — wtf ?

Цукерберг рекомендует:  Таргетинг - SMM (таргетинг) для b2b в узких нишах

Creating Multi-Release JAR Files in IntelliJ > Posted on October 20, 2020 by Trisha Gee

One of the interesting features of Java 9 is support for Multi-Release JAR Files. What does this mean? In the past, library developers had three options when it came to supporting newer versions of Java:

  1. Provide two (or more!) different JAR files, one for each version of Java they wanted to support. These might come with version numbers like “1.2-java-5” and “1.2-java-1.3”.
  2. Tie each one of your releases to a specific version of Java, forcing the users to either upgrade their version of Java or be stuck on an old version of the library. E.g. “version 5.0 onwards requires Java 8”.
  3. Stick to the lowest common denominator release for users. For many library developers, this means they are still compiled against Java 6 and cannot move to using Java 8 features like lambdas and streams until practically all their users have moved to 8 already.

None of these approaches is particularly fun for the library developers or their users. They either involve a lot of work, or they alienate/confuse users, or the libraries don’t get to make use of new features (and therefore don’t provide much incentive for their users to upgrade their version of Java either).

As of Java 9, there’s an alternative. Now, a library developer can release a single JAR file that:

  • If you’re running it on Java 9, uses Java 9 features and functionality
  • If you’re running it on a version before Java 9, you get the pre-Java-9 implementation.

This works for Java 9 onwards – so these multi-release JAR files will support a Java 9 version, a Java 10 (or 18.3), 11, 12 version etc… but anything before Java 9 is lumped into “pre-Java 9”. This is a little bit sad since obviously Java 8 had some nice features that you might want if you’re running Java 8, but the pre-Java-9 support for a library might target 6 onwards like a lot of libraries still do. The reason for this split, of course, is that Java 8 itself can’t decide what to do differently when it runs a multi-release JAR file because the functionality only became available in Java 9.

In this blog post I’m going to show how to create a multi-release JAR file in IntelliJ IDEA. I highly recommend that you do not use the IDE for creating production-ready builds of your application, I expect most people are using Maven, Gradle, Ant or some other build tool. However, I wanted to experiment with multi-release JAR files and managed to build them using IntelliJ IDEA, and hope that showing this process helps people to understand how to build multi-release JAR files and how they work.

The Example

I’m going to create a really simple application that just outputs the current stack trace (you’ll see why I’ve chosen this example later). My project consists of a Main class, an interface to define what I might be interested in about the stack, StackInfo, and an implementation of this interface, StackParser:

Project Structure

If you look at the specification, you’ll see that what you need is an output structure that looks something like this:

intellij-idea Построение .jar

пример

В конце концов, когда вы будете готовы выпустить версию своего кода для производства, вам понадобится файл .jar для распространения. Intellij упрощает создание JAR.

Сначала перейдите в раздел « File -> Project Structure и нажмите « Artifacts :

Нажмите кнопку + и выберите JAR -> From modules with dependencies :

Выберите свой модуль из раскрывающегося списка и основного файла (это файл, содержащий public static void main() метод public static void main() ):

Нажмите « OK , убедитесь, что все сведения о зависимостях верны, и нажмите « OK чтобы завершить настройку артефакта.

Мы еще не закончили! Мы только сказали Intellij, как построить артефакт, теперь нам действительно нужно сделать .jar .

Просто нажмите « Build -> Build Artifacts и нажмите « Build во всплывающем меню:

jar можно будет найти в build -> classes -> artifacts

Intelij idea — Создание исполняемого jar файла в Intelij IDEA

19242 просмотра


2 ответа

377 Репутация автора

Я много дней пытался разобраться, как это сделать, если кто-то это сделал, прежде чем я буду очень благодарен за помощь.

Цукерберг рекомендует:  Macos - Изучение Objective-C с нуля

У меня есть проект автоматизации, который я создал в IntelliJ, который автоматизирует взаимодействие пользователя с веб-приложением.

Я хотел бы поставить этот автоматический тест (созданный на Java, используя Selenium и TestNG) в исполняемый файл jar, который другие могут запускать, дважды щелкнув файл jar.

Каждый раз, когда я пытаюсь создать файл jar, перейдя к структуре Project Structure -> Artifact -> + -> Jar -> From с зависимостями, он заканчивает создание банки, которая утверждает это,

когда я пытаюсь запустить его с помощью следующей команды:

Любая идея, почему я постоянно получаю эту ошибку или у меня есть способ сделать это успешно?

Кроме того, вот мой pom.xml:

Ответы (2)

7 плюса

377 Репутация автора

Я, наконец, понял, для кого-то другого, кто сталкивается с этой проблемой, так я создал файл jar, который будет создан и успешно запущен .

Мне пришлось изменить файл pom.xml следующим образом:

Затем мне пришлось настроить мой основной метод, чтобы не использовать вызовы, связанные с TestNG. Например, я не мог использовать что-то вроде этого для моего основного метода:

Наконец, вот шаги по созданию соответствующего файла jar:

  1. Выберите «Файл»> «Структура проекта» . из верхнего меню
  2. Выберите «Артефакт» в меню слева и нажмите кнопку «+»,
  3. Выберите Jar> Из модулей с зависимостями .
  4. Выберите основной класс, используя кнопку обзора
  5. Нажмите переключатель рядом с «извлечь в целевую банку» и нажмите «ОК».
  6. Нажмите «+», затем выберите «Выход тестового модуля»,
  7. На панели «Доступные элементы» справа откройте имя проекта и выберите все файлы Maven, а затем переместите их в каталог баннеров, созданный на левой панели
  8. Нажмите «ОК»
  9. Выберите «Построить»> «Построить артефакты» . из верхнего меню
  10. Наведите курсор на созданный банку и нажмите «Построить» в разделе «Действия»

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

Файл file = новый файл («src \ test \ resources \ binaries \ IEDriverServer.exe»);

Затем создайте тот же каталог с указанным в нем драйвером в той же папке, в которой ваша банка будет сохранена на вашем компьютере:

2. Убедитесь, что при использовании IE этот защищенный режим установлен для всех зон или ни одного из них (в IE перейдите в раздел «Свойства обозревателя» . > «Безопасность» (вкладка)> «Включить защищенный режим»)

пытаясь создать исполняемый файл jar в IntelliJ >

Я пытаюсь создать файл JAR для проекта Tornadofx,

он работает нормально, когда я запускаю основную функцию в my.kt (seri / src / main / kotlin / my.kt)

работает под управлением Windows 10, Intelli IDEA 2020.1.1 я сделал JAR-артефакт в структуре проекта, и «построить артефакты» из меню сборки, он создал JAR-файл, но он не работает, показывает ошибку «Ошибка: не удалось найти или загрузить основной Класс com.serious.MyApp Причина: java.lang.NoClassDefFoundError: tornadofx / App «

Не уверен, что это оптимальное решение, но вы можете использовать теневой плагин для Gradle. Это позволяет легко создавать JAR-файлы FAT / Uber. Все, что вам нужно сделать, это немного изменить ваш файл build.gradle:

А затем запустите задачу с именем ‘shadowJar’. Жирная банка будет помещена в /build/libs/ .

Файлы JAR, созданные IntelliJ >

Я написал программу, которая охватывает несколько классов в IntelliJ, и она отлично работает, когда я тестировал ее в IDE. Однако всякий раз, когда я следую инструкциям, чтобы превратить мой проект в исполняемый файл .jar, он не запускается.

Файл в папке out не запускается при двойном щелчке по нему и говорит, что «Java JAR-файл« projectName.jar »не может быть запущен.

При открытии его из терминала я получаю сообщение об ошибке «Не удалось найти или загрузить основной класс». Я использовал «$ java -jar projectName.jar»

Я следовал за этими шагами:

  1. Откройте Структуру проекта, Артефакты и нажмите (+).
  2. Под JAR, из модулей с зависимостями.
  3. Укажите на класс моим основным методом и нажмите ОК.
  4. Нажмите «Применить» и «ОК» для выхода.
  5. Затем я закрываю структуру проекта и открываю Build, а затем Build Artifacts .
  6. Затем я нажимаю Build.
  7. Перейдите к

/ IdeaProjects / имя_проекта / out / artifacts / имя_проекта_jar / имя_проекта.jar

Тогда я попытался бы запустить его, но он не запускается. Мой проект имеет графический интерфейс и может быть запущен из командной строки. Когда я скомпилировал метод main в Terminal, он работал нормально, но мне нужен файл JAR. Я не уверен, что я должен включить в вопрос, так как я уверен, что мой код не связан. Я также использую Maven, не уверен, что это связано. Есть ли другие вещи, которые я должен сделать или добавить в свой проект, прежде чем создавать JAR?

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих