gluonhq / gluonfx-maven-plugin

Plugin that simplifies creating native images for Java/JavaFX maven projects
BSD 3-Clause "New" or "Revised" License
189 stars 39 forks source link

Native image crashes with: no jfxmedia in java.library.path on Fedora Linux #476

Open UndeadDevel opened 1 year ago

UndeadDevel commented 1 year ago

Similarly to #451 I can build my app, which requires javafx-media for playing some sounds, fine, but attempting to do a nativerun fails with the following error:

[Thu Jun 29 22:38:52 UST 2023][INFO] ==================== RUN TASK ====================
[Thu Jun 29 22:38:54 UST 2023][INFO] [SUB] Jun 30, 2023 12:38:54 AM com.sun.javafx.application.PlatformImpl startup
[Thu Jun 29 22:38:54 UST 2023][INFO] [SUB] WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @71c7db30'
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB] Exception in Application constructor
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB] Exception in thread "main" java.lang.RuntimeException: Unable to construct Application instance: class my.package.name.Main
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:883)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at java.lang.Thread.run(Thread.java:833)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:704)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:202)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB] Caused by: java.lang.reflect.InvocationTargetException
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at java.lang.reflect.Constructor.newInstance(Constructor.java:480)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(LauncherImpl.java:795)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:483)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:456)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at java.security.AccessController.executePrivileged(AccessController.java:169)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at java.security.AccessController.doPrivileged(AccessController.java:399)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:455)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST_Runnable_run_16403f8d32adb631126daa893e5e80085c5d6325(JNIJavaCallWrappers.java:0)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.glass.ui.gtk.GtkApplication._runLoop(GtkApplication.java)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(GtkApplication.java:263)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     ... 3 more
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB] Caused by: java.lang.UnsatisfiedLinkError: no jfxmedia in java.library.path
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.oracle.svm.core.jdk.NativeLibrarySupport.loadLibraryRelative(NativeLibrarySupport.java:132)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at java.lang.ClassLoader.loadLibrary(ClassLoader.java:47)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at java.lang.Runtime.loadLibrary0(Runtime.java:818)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at java.lang.System.loadLibrary(System.java:1989)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:166)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:65)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.media.jfxmediaimpl.NativeMediaManager.lambda$new$0(NativeMediaManager.java:138)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at java.security.AccessController.executePrivileged(AccessController.java:145)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at java.security.AccessController.doPrivileged(AccessController.java:569)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.media.jfxmediaimpl.NativeMediaManager.<init>(NativeMediaManager.java:107)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.media.jfxmediaimpl.NativeMediaManager$NativeMediaManagerInitializer.<clinit>(NativeMediaManager.java:77)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.media.jfxmediaimpl.NativeMediaManager.getDefaultInstance(NativeMediaManager.java:89)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.media.jfxmedia.MediaManager.canPlayProtocol(MediaManager.java:78)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.media.jfxmedia.locator.Locator.<init>(Locator.java:240)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.media.jfxmediaimpl.NativeMediaAudioClip.<init>(NativeMediaAudioClip.java:53)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.media.jfxmediaimpl.NativeMediaAudioClip.load(NativeMediaAudioClip.java:63)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.media.jfxmediaimpl.AudioClipProvider.load(AudioClipProvider.java:66)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at com.sun.media.jfxmedia.AudioClip.load(AudioClip.java:135)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at javafx.scene.media.AudioClip.<init>(AudioClip.java:83)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     at my.package.name.Main.<init>(Main.java:109)
[Thu Jun 29 22:38:56 UST 2023][INFO] [SUB]     ... 15 more

I had the same problem on Windows, but Windows is not listed as supporting media just yet, while in the above mentioned other issue about Android and iOS it was designated as won't fix, presumably because another route via Gluon Attach is being taken.

Linux is listed as supporting javafx-media, however, so I don't get what I'm doing wrong.

I'd also like to mention on an unrelated topic, as I've commented on a closed issue already, that the gluon guide for Windows should really tell people to install the "latest" option of the various build tools mentioned there...the way it's written right now is confusing and led me to install older versions (the ones that are mentioned in the guide), which does not work, because the vcvars bats are not installed unless the "latest" packages are chosen.