Hallo zusammen,
ich versuche ein Simples JavaFX Programm mit Jlink zu erstellen, sodass dieses ohne ein JRE/JDK auf einem anderen Rechner auskommt.
Auch nach etlichen Youtube Videos und Tutorials (z.B. Getting Startet) und die Schritte 1 zu 1 nachstellen funktioniert es leider nicht ganz.
Das Programm funktioniert sowohl in der IDE, als auch als mittles Artifacts erstelltes .jar File.
Das Problem hängt (wie es aus den Meldungen hervor geht) mit den Modulen zusammen und da ich bisher nicht viel mit
Maven Projekten / Strukturen und Modulen generell zu tun hatte, weis ich leider nicht wo ich hier den Fehler mache.
Hier meine Projektstruktur:

Project Structure in Intellij:
-> Libraray: JavaFx JDK wurde der Library hinzugefügt
-> Modules: JavaFX Lib wurde dem Modul in Dependencies hinzugefügt (Maven Objekte entfernt)
-> Artifacts:
Wenn ich nun versuche das Image mit Jlink zu erzeugen, oder mir die requirements anzeigen zu lasse bekomme ich folgende Fehler:
Wo genaue fehlt hier was oder wo mache ich einen Fehler
?
Hoffe jemand sieht das Problem direkt und kann mir weiter helfen.
Vorab vielen Dank!
ich versuche ein Simples JavaFX Programm mit Jlink zu erstellen, sodass dieses ohne ein JRE/JDK auf einem anderen Rechner auskommt.
Auch nach etlichen Youtube Videos und Tutorials (z.B. Getting Startet) und die Schritte 1 zu 1 nachstellen funktioniert es leider nicht ganz.
Das Programm funktioniert sowohl in der IDE, als auch als mittles Artifacts erstelltes .jar File.
Das Problem hängt (wie es aus den Meldungen hervor geht) mit den Modulen zusammen und da ich bisher nicht viel mit
Maven Projekten / Strukturen und Modulen generell zu tun hatte, weis ich leider nicht wo ich hier den Fehler mache.
Hier meine Projektstruktur:

[CODE lang="java" title="module-info.java"]module myapp.myapp {
requires javafx.controls;
requires javafx.base;
requires javafx.fxml;
requires java.base;
opens myapp.myapp to javafx.fxml;
exports myapp.myapp;
}[/CODE]
requires javafx.controls;
requires javafx.base;
requires javafx.fxml;
requires java.base;
opens myapp.myapp to javafx.fxml;
exports myapp.myapp;
}[/CODE]
Project Structure in Intellij:
-> Libraray: JavaFx JDK wurde der Library hinzugefügt
-> Modules: JavaFX Lib wurde dem Modul in Dependencies hinzugefügt (Maven Objekte entfernt)
-> Artifacts:
Wenn ich nun versuche das Image mit Jlink zu erzeugen, oder mir die requirements anzeigen zu lasse bekomme ich folgende Fehler:
C:\Users\Praktikant\Desktop\LPMProgramming\myapp\out\artifacts\myapp_jar>jdeps myapp.jar
Exception in thread "main" java.lang.module.FindException: Module javafx.controls not found, required by myapp.myapp
at java.base/java.lang.module.Resolver.findFail(Resolver.java:893)
at java.base/java.lang.module.Resolver.resolve(Resolver.java:192)
at java.base/java.lang.module.Resolver.resolve(Resolver.java:141)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:421)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:255)
at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.build(JdepsConfiguration.java:564)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.buildConfig(JdepsTask.java:603)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:557)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:533)
at jdk.jdeps/com.sun.tools.jdeps.Main.main(Main.java:49)
at java.base/java.lang.module.Resolver.resolve(Resolver.java:192)
at java.base/java.lang.module.Resolver.resolve(Resolver.java:141)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:421)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:255)
at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.build(JdepsConfiguration.java:564)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.buildConfig(JdepsTask.java:603)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:557)
at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:533)
at jdk.jdeps/com.sun.tools.jdeps.Main.main(Main.java:49)
C:\Users\Praktikant\Desktop\LPMProgramming\myapp\out\artifacts\myapp_jar> jlink --module-path myapp.jar --add-modules myapp --output finish --compress=2
Error: Module myapp not found
java.lang.module.FindException: Module myapp not found
at java.base/java.lang.module.Resolver.findFail(Resolver.java:893)
at java.base/java.lang.module.Resolver.resolve(Resolver.java:129)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:421)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:255)
at jdk.jlink/jdk.tools.jlink.internal.Jlink$JlinkConfiguration.resolve(Jlink.java:217)
at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.createImageProvider(JlinkTask.java:536)
at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.createImage(JlinkTask.java:424)
at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.run(JlinkTask.java:276)
at jdk.jlink/jdk.tools.jlink.internal.Main.run(Main.java:55)
at jdk.jlink/jdk.tools.jlink.internal.Main.main(Main.java:33)
at java.base/java.lang.module.Resolver.findFail(Resolver.java:893)
at java.base/java.lang.module.Resolver.resolve(Resolver.java:129)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:421)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:255)
at jdk.jlink/jdk.tools.jlink.internal.Jlink$JlinkConfiguration.resolve(Jlink.java:217)
at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.createImageProvider(JlinkTask.java:536)
at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.createImage(JlinkTask.java:424)
at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.run(JlinkTask.java:276)
at jdk.jlink/jdk.tools.jlink.internal.Main.run(Main.java:55)
at jdk.jlink/jdk.tools.jlink.internal.Main.main(Main.java:33)
C:\Users\Praktikant\Desktop\LPMProgramming\myapp\out\artifacts\myapp_jar>jlink --module-path myapp.jar;"C:\Program Files\Java\javafx-jmods-17.0.1" --add-modules ALL-MODULE-PATH --output finish --compress=2
Error: Module myapp.myapp contains package javafx.event, module javafx.base exports package javafx.event to myapp.myapp
Wo genaue fehlt hier was oder wo mache ich einen Fehler
Hoffe jemand sieht das Problem direkt und kann mir weiter helfen.
Vorab vielen Dank!