Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8335488

javafx 22.0.1 fails on ARM64 Apple M1/M2 chip

XMLWordPrintable

    • aarch64
    • os_x

      ADDITIONAL SYSTEM INFORMATION :
      macOS (14.5 (23F79)) on arm64 (Apple M2 Max)
      (NO ROSETTA INSTALLED)

      A DESCRIPTION OF THE PROBLEM :
      javafx 22.0.1 downloads a intel binary in the place of a arm one, and so does not work on arm computers

      other people in my team say other versions are also downloading incorrect binaries into the aarch64 folder

      here is the exceptions i get:

      Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib: dlopen(/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib, 0x0001): tried: '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (no such file), '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
      java.lang.UnsatisfiedLinkError: /Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib: dlopen(/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib, 0x0001): tried: '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (no such file), '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
      at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
      at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:331)
      at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:197)
      at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:139)
      at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2418)
      at java.base/java.lang.Runtime.load0(Runtime.java:852)
      at java.base/java.lang.System.load(System.java:2025)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
      at javafx.graphics@22.0.1/com.sun.prism.es2.ES2Pipeline.lambda$static$0(ES2Pipeline.java:63)
      at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
      at javafx.graphics@22.0.1/com.sun.prism.es2.ES2Pipeline.<clinit>(ES2Pipeline.java:52)
      at java.base/java.lang.Class.forName0(Native Method)
      at java.base/java.lang.Class.forName(Class.java:421)
      at java.base/java.lang.Class.forName(Class.java:412)
      at javafx.graphics@22.0.1/com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
      at java.base/java.lang.Thread.run(Thread.java:1583)
      Loading library prism_sw from resource failed: java.lang.UnsatisfiedLinkError: /Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib: dlopen(/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib, 0x0001): tried: '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (no such file), '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
      java.lang.UnsatisfiedLinkError: /Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib: dlopen(/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib, 0x0001): tried: '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (no such file), '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
      at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
      at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:331)
      at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:197)
      at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:139)
      at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2418)
      at java.base/java.lang.Runtime.load0(Runtime.java:852)
      at java.base/java.lang.System.load(System.java:2025)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
      at javafx.graphics@22.0.1/com.sun.prism.sw.SWPipeline.lambda$static$0(SWPipeline.java:43)
      at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
      at javafx.graphics@22.0.1/com.sun.prism.sw.SWPipeline.<clinit>(SWPipeline.java:42)
      at java.base/java.lang.Class.forName0(Native Method)
      at java.base/java.lang.Class.forName(Class.java:421)
      at java.base/java.lang.Class.forName(Class.java:412)
      at javafx.graphics@22.0.1/com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
      at java.base/java.lang.Thread.run(Thread.java:1583)
      Graphics Device initialization failed for : es2, sw
      Error initializing QuantumRenderer: no suitable pipeline found
      java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:283)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:253)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:263)
      at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
      at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1135)
      Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:95)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
      at java.base/java.lang.Thread.run(Thread.java:1583)
      Exception in thread "main" java.lang.reflect.InvocationTargetException
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1135)
      Caused by: java.lang.RuntimeException: No toolkit found
      at javafx.graphics@22.0.1/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:275)
      at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
      at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      ... 2 more


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      run javafx app with javafx version 22.0.1 on arm mac

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      app runs
      ACTUAL -
      exception

      Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib: dlopen(/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib, 0x0001): tried: '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (no such file), '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
      java.lang.UnsatisfiedLinkError: /Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib: dlopen(/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib, 0x0001): tried: '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (no such file), '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
      at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
      at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:331)
      at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:197)
      at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:139)
      at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2418)
      at java.base/java.lang.Runtime.load0(Runtime.java:852)
      at java.base/java.lang.System.load(System.java:2025)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
      at javafx.graphics@22.0.1/com.sun.prism.es2.ES2Pipeline.lambda$static$0(ES2Pipeline.java:63)
      at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
      at javafx.graphics@22.0.1/com.sun.prism.es2.ES2Pipeline.<clinit>(ES2Pipeline.java:52)
      at java.base/java.lang.Class.forName0(Native Method)
      at java.base/java.lang.Class.forName(Class.java:421)
      at java.base/java.lang.Class.forName(Class.java:412)
      at javafx.graphics@22.0.1/com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
      at java.base/java.lang.Thread.run(Thread.java:1583)
      Loading library prism_sw from resource failed: java.lang.UnsatisfiedLinkError: /Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib: dlopen(/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib, 0x0001): tried: '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (no such file), '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
      java.lang.UnsatisfiedLinkError: /Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib: dlopen(/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib, 0x0001): tried: '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (no such file), '/Users/yura/.openjfx/cache/22.0.1+7/aarch64/libprism_sw.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
      at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
      at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:331)
      at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:197)
      at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:139)
      at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2418)
      at java.base/java.lang.Runtime.load0(Runtime.java:852)
      at java.base/java.lang.System.load(System.java:2025)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:220)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:200)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:142)
      at javafx.graphics@22.0.1/com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:58)
      at javafx.graphics@22.0.1/com.sun.prism.sw.SWPipeline.lambda$static$0(SWPipeline.java:43)
      at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
      at javafx.graphics@22.0.1/com.sun.prism.sw.SWPipeline.<clinit>(SWPipeline.java:42)
      at java.base/java.lang.Class.forName0(Native Method)
      at java.base/java.lang.Class.forName(Class.java:421)
      at java.base/java.lang.Class.forName(Class.java:412)
      at javafx.graphics@22.0.1/com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
      at java.base/java.lang.Thread.run(Thread.java:1583)
      Graphics Device initialization failed for : es2, sw
      Error initializing QuantumRenderer: no suitable pipeline found
      java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:283)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:253)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:263)
      at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
      at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1135)
      Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:95)
      at javafx.graphics@22.0.1/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
      at java.base/java.lang.Thread.run(Thread.java:1583)
      Exception in thread "main" java.lang.reflect.InvocationTargetException
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1135)
      Caused by: java.lang.RuntimeException: No toolkit found
      at javafx.graphics@22.0.1/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:275)
      at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:290)
      at javafx.graphics@22.0.1/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:162)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:651)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
      at javafx.graphics@22.0.1/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      ... 2 more


      FREQUENCY : always


            sykora Joeri Sykora
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: