I tried to make graal native image to work for javafx, and failed, leaving notes for the record.
Even after making several configurations changes I am not able to get it to work.
The project I am compiling is thejavafxproject
with the entry point - JavaFxEntryPointMainMethod
This is the command I used to build the native image.
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-console-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-datetime-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-debug-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-errorhandling-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-file-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-file-l1-2-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-file-l2-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-handle-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-heap-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-interlocked-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-libraryloader-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-localization-l1-2-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-memory-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-namedpipe-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-processenvironment-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-processthreads-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-processthreads-l1-1-1.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-profile-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-rtlsupport-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-string-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-synch-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-synch-l1-2-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-sysinfo-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-timezone-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-core-util-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-conio-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-convert-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-environment-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-filesystem-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-heap-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-locale-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-math-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-multibyte-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-private-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-process-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-runtime-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-stdio-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-string-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-time-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\api-ms-win-crt-utility-l1-1-0.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\ucrtbase.
dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\vcruntime
140.dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\msvcp140.
dll from java.library.path
Loaded \graalvm-ee-19.0.2\jre\bin\concrt140
.dll from java.library.path
Prism pipeline init order: d3d sw
Using native-based Pisces rasterizer
Using dirty region optimizations
Not using texture mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.d3d.D3DPipeline
(X) Got class = class com.sun.prism.d3d.D3DPipeline
Loading D3D native library ...
Loaded \graalvm-ee-19.0.2\jre\bin\prism_d3d
.dll from java.library.path
succeeded.
D3DPipelineManager: Created D3D9Ex device
Direct3D initialization succeeded
Initialized prism pipeline: com.sun.prism.d3d.D3DPipeline
JavaFX: using com.sun.javafx.tk.quantum.QuantumToolkit
Loaded graalvm-ee-19.0.2\jre\bin\glass.dll
from java.library.path
Good attempt! Gluon is supposedly going to release a Maven/Gradle plugin to get javafx working with openjdk and graalvm for Windows "shortly." They just recently released the beta version for macOS, so I have high hopes!
I tried to make graal native image to work for javafx, and failed, leaving notes for the record.
Even after making several configurations changes I am not able to get it to work.
The project I am compiling is thejavafxproject
with the entry point - JavaFxEntryPointMainMethod
This is the command I used to build the native image.
I am able to get a native image, which will crash :'(
reflectconfig.json
jniconfig.json
A 10MB exe is created thejavafxproject.exe
Output - on running the executable
Good attempt! Gluon is supposedly going to release a Maven/Gradle plugin to get javafx working with openjdk and graalvm for Windows "shortly." They just recently released the beta version for macOS, so I have high hopes!
Ya just to come and report, it works. Gluon team did the hard-work and it is for free for all of us.