Java 23 и Javafx: проблемы при создании исполняемого приложенияJAVA

Программисты JAVA общаются здесь
Anonymous
Java 23 и Javafx: проблемы при создании исполняемого приложения

Сообщение Anonymous »

Я разрабатываю приложение с использованием Javafx, но я столкнулся с проблемой, создавая сборку и преобразовал его в исполняемое приложение. Несколько лет назад я создал небольшое приложение с использованием этой технологии, и я помню, что INTELLIJ Idea позволила мне создать нативного исполняемого файла практически для любой операционной системы настольных компьютеров (Windows, Mac или Linux). Однако эта стратегия не сработала для меня в этом проекте. Согласно тому, что я читал в Интернете, проект Javafx был изначально отделен от Oracle JDK, поэтому его необходимо работать независимо. Я исследовал, как создать исполняемую сборку этого приложения, используя плагины Maven (я уже пробовал некоторые варианты), и ничего не сработало. Мне удалось получить полученный файл. Я прикрепил свой файл pom.xml. < /P>


4.0.0
cu.nerzur
WallpaperEngine
0.2.2
WallpaperEngine
WallpaperEngine

UTF-8
5.10.2
23





com.sangupta
jerry-core
3.0.1




com.sangupta
jerry-http
2.0.0



org.projectlombok
lombok
1.18.38
true
provided



net.java.dev.jna
jna
5.13.0


net.java.dev.jna
jna-platform
5.13.0




org.openjfx
javafx-controls
26-ea+3



org.openjfx
javafx-fxml
26-ea+3


org.openjfx
javafx-swing
26-ea+3



org.junit.jupiter
junit-jupiter-api
${junit.version}
test


org.junit.jupiter
junit-jupiter-engine
${junit.version}
test




com.google.code.gson
gson
2.13.1






org.apache.maven.plugins
maven-compiler-plugin
3.14.0

23


org.projectlombok
lombok
1.18.38



-Xlint:all




org.apache.maven.plugins
maven-shade-plugin
3.6.0


package

shade




com.nerzur.wallpaperengine.Init




*:*

META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA








org.openjfx
javafx-maven-plugin
0.0.8


default-cli

com.nerzur.wallpaperengine.Init
app
app
app
true
true
true








< /code>
Но я до сих пор не могу включить Java fx -времени, и я получаю сообщение об ошибке при запуске JAR с командой Java -Jar App.jar. < /p>
PS D:\Development\SpringBoot\WallpaperEngine\target> java -jar .\WallpaperEngine-0.2.2.jar
Error: JavaFX runtime components are missing, and are required to run this application
PS D:\Development\SpringBoot\WallpaperEngine\target>
< /code>
Некоторые решения упоминаются с использованием файла модуля info.java для создания модуля Java, который включает зависимости Javafx. Однако при создании этого файла начинают появляться ошибки, потому что я использую зависимости, которые не поддерживаются модулями, или так кажется. В настоящее время я не использую этот файл, но когда я интегрировал его в проект, он выглядел примерно так.module com.nerzur.WallpaperEngine {
requires javafx.controls;
requires javafx.fxml;
requires javafx.graphics;
requires java.desktop;

requires transitive static lombok;
requires transitive slf4j.api;
requires transitive jerry.http;
requires transitive jerry.core;
requires transitive java.net.http;
requires transitive com.google.gson;
requires transitive com.sun.jna;
requires transitive com.sun.jna.platform;

opens com.nerzur.wallpaperengine to javafx.fxml;
opens com.nerzur.wallpaperengine.controller to javafx.fxml;

exports com.nerzur.wallpaperengine;
exports com.nerzur.wallpaperengine.controller;
exports com.nerzur.wallpaperengine.service;
exports com.nerzur.wallpaperengine.scheduledTask;
exports com.nerzur.wallpaperengine.util;
}
< /code>
Единственное решение, которое я обнаружил, чтобы сделать этот проект, подлежащий компиляции,-это использовать запуск4J (внешнее приложение) с использованием текущего pom.xml и удаления файла модуля info.java. Затем пройдите фиксированный путь для JRE и другого пути с параметрами выполнения JVM в качестве параметров со следующей командой:--модуль-пат "c: \ wallaperengine \ libs \ javafx-sdk-24.0.2 \ lib"-add-modules javafx.controls, javafx.fxml, javafx.swing "

Подробнее здесь: https://stackoverflow.com/questions/797 ... utable-app

Вернуться в «JAVA»