Написал небольшую програму для десктопа на TornadoFX
. Не могу понять как сгенерить jar
в IntellJ Idea
. Пробовал стандартный способ с генерацией обычного jar
-артифакта но они не запускаються(linux
говорит что нет манифеста, хотя он был). Опыта с JavaFX
и TornadoFX
не имел ранее, поэтому прошу любой помощи.
Лучший всего способ переписать проект в Maven
.
1 - Создаем Maven-проект (посмотри шаги до "Превращение в веб-проект")
2 - В pom.xml
добавляем вот такую структуру:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>ЗДЕСЬ.ПИШЕМ.ПУТЬ</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
В структуре выше найди ЗДЕСЬ.ПИШЕМ.ПУТЬ
. Вместо этого ты пишешь путь к запускаемому классу. К примеру, твой класс находится в java->com->example->Main.java
, тогда в мы пишем в pom.xml
<mainClass>com.example.Main</mainClass>
Вроде отсюда я копировал данную структуру
Продолжение под картинкой
Далее, в правой части экрана в узкой панели найди Maven
.
В ней раскрой Lifecycle
и нажми на install
.
После install
у тебя сгенерируются два файла: просто jar и jar-with-dependencies. Тебе нужен второй файл, если в твоей библиотеке используются дополнительные библиотеки. Найти файлы можно В папке target
(эта папка появится над pom.xml
)
На этом все! Должно сработать (у меня лично это работает.)
P.S. Это ОФФТОПИК. Посмотри как работать с Maven. Если раньше ты постоянно скачивал jar-библиотеку с инета, потом через артефакты ты ее подключал... В Maven ты просто пишешь зависимость и библиотека сама закачивается в комп и подключается к проекту.
К примеру: https://mvnrepository.com/artifact/org.json/json/20180813
в pom.xml будет записано как:
<dependencies>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
</dependencies>
Посмореть, что данная библиотека закачалась, можно нажав в левой части экрана на External Libraries
.
В IntelIJ с помощью комбинации клавиш CTRL+ALT+SHIFT+S попадаем в структуру проекта. Заходим в пункт Artifacts Нажимаем на Add (зеленый плюс), выбираем JAR и пункт from modules with dependencies. В выплывающем окне выбираем главный класс. Жмем ОК, закрываем окно. Выскочит еще одно окно, в котором нажимаем Apply, закрываем это окно. Настройка закончена. Идем в пункт Build Выбираем Build Artifact, затем Build.
Исполняемый файл будет сгенерирован в директории out / Artifacts. Могут возникнуть проблемы если в проекте есть import какого-либо пакета. но этого импорта нет в classpath Если JAR не запускается, войдите в структуру проекта, пункт Modules -> Dependencies -> Add -> Project Libruary -> Attach JAR
Если вдруг Ваше приложение консольное, и Вы хотите запускать его не через консоль, нужно будет создать bat-файл в котором прописать следующую команду
java -jar filename.jar И запускать уже файл.bat.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Недавно узнала про CSS-свойство -webkit-tap-highlight-color, которое позволяет убрать голубоватый фон при тапе на элемент во многих браузерахОднако MDN предупреждает,...
Есть задача - динамически сгенерировать строку с html кодом и на основе нее сгенерировать pdf файл (использую пакет html-pdf)Естественно, в этой пдфке...
День добрыйЕсть такая проблема: сайт http://roskapstroy
Возможно очень нубский вопрос, но я озадачилсяЕсть 2 блока: