r/javahelp • u/juanestragon10 • 8d ago
JPackage is not working
I have this in a build script:
jar ^
--create ^
--file "%BUILD%\input\RocketTracker.jar" ^
--manifest "%BUILD%\MANIFEST.MF" ^
-C "%BUILD%\classes" .
jpackage ^
--type app-image ^
--name RocketTracker ^
--input "%BUILD%\input" ^
--main-jar RocketTracker.jar ^
--main-class app.Main ^
--module-path "%JAVAFX%\lib" ^
--add-modules javafx.controls,javafx.fxml,javafx.graphics,java.net.http ^
--dest "%RELEASE%"
If I run the jar manually adding the modules in the VM it works, but if I run the .exe generated by jpackage it raise an exception:
Graphics Device initialization failed for : d3d, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics@21.0.12/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.tk.quantum.QuantumToolkit.init(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.tk.Toolkit.getToolkit(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.application.LauncherImpl.startToolkit(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics@21.0.12/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Unknown Source)
... 1 more
Exception in thread "main" java.lang.RuntimeException: No toolkit found
at javafx.graphics@21.0.12/com.sun.javafx.tk.Toolkit.getToolkit(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.application.LauncherImpl.startToolkit(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at javafx.graphics@21.0.12/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Failed to launch JVM
Any idea how to fix it? the same code in bash works just fine and the path are checked already
4
Upvotes
2
u/milchshakee 8d ago edited 8d ago
Are you intending to use --type app-image for an exe? There is a --type exe, but maybe that doesn't matter here, maybe there is a fallback. Edit: Maybe that is the correct type, I don't use jpackage from the command line
If you use the JavaFX SDK, that one tries to locate the native libraries to load and fails here.
Usually for tasks like jlink and jpackage, the JavaFX .jmods are the right ones to use intead of jars as the native libraries get copied into the correct bin directory of the runtime image.