Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mac arm芯片不兼容JavaFX #1

Closed
sdfdfasd12 opened this issue May 8, 2024 · 4 comments
Closed

mac arm芯片不兼容JavaFX #1

sdfdfasd12 opened this issue May 8, 2024 · 4 comments

Comments

@sdfdfasd12
Copy link

5月 08, 2024 10:50:04 上午 com.sun.javafx.application.PlatformImpl startup
警告: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @6d6a0534'
Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /Users/admin/.openjfx/cache/17.0.10/libprism_es2.dylib: dlopen(/Users/admin/.openjfx/cache/17.0.10/libprism_es2.dylib, 0x0001): tried: '/Users/admin/.openjfx/cache/17.0.10/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/admin/.openjfx/cache/17.0.10/libprism_es2.dylib' (no such file), '/Users/admin/.openjfx/cache/17.0.10/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
java.lang.UnsatisfiedLinkError: /Users/admin/.openjfx/cache/17.0.10/libprism_es2.dylib: dlopen(/Users/admin/.openjfx/cache/17.0.10/libprism_es2.dylib, 0x0001): tried: '/Users/admin/.openjfx/cache/17.0.10/libprism_es2.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/admin/.openjfx/cache/17.0.10/libprism_es2.dylib' (no such file), '/Users/admin/.openjfx/cache/17.0.10/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:2399)
at java.base/java.lang.Runtime.load0(Runtime.java:852)
at java.base/java.lang.System.load(System.java:2030)
at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(SourceFile:217)
at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(SourceFile:197)
at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(SourceFile:138)
at com.sun.glass.utils.NativeLibLoader.loadLibrary(SourceFile:54)
at com.sun.prism.es2.ES2Pipeline.lambda$static$0(SourceFile:63)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
at com.sun.prism.es2.ES2Pipeline.(SourceFile:52)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:413)
at java.base/java.lang.Class.forName(Class.java:404)
at com.sun.prism.GraphicsPipeline.createPipeline(SourceFile:218)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(SourceFile:92)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(SourceFile:125)
at java.base/java.lang.Thread.run(Thread.java:1570)
Loading library prism_sw from resource failed: java.lang.UnsatisfiedLinkError: /Users/admin/.openjfx/cache/17.0.10/libprism_sw.dylib: dlopen(/Users/admin/.openjfx/cache/17.0.10/libprism_sw.dylib, 0x0001): tried: '/Users/admin/.openjfx/cache/17.0.10/libprism_sw.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/admin/.openjfx/cache/17.0.10/libprism_sw.dylib' (no such file), '/Users/admin/.openjfx/cache/17.0.10/libprism_sw.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
java.lang.UnsatisfiedLinkError: /Users/admin/.openjfx/cache/17.0.10/libprism_sw.dylib: dlopen(/Users/admin/.openjfx/cache/17.0.10/libprism_sw.dylib, 0x0001): tried: '/Users/admin/.openjfx/cache/17.0.10/libprism_sw.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/admin/.openjfx/cache/17.0.10/libprism_sw.dylib' (no such file), '/Users/admin/.openjfx/cache/17.0.10/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:2399)
at java.base/java.lang.Runtime.load0(Runtime.java:852)
at java.base/java.lang.System.load(System.java:2030)
at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(SourceFile:217)
at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(SourceFile:197)
at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(SourceFile:138)
at com.sun.glass.utils.NativeLibLoader.loadLibrary(SourceFile:54)
at com.sun.prism.sw.SWPipeline.lambda$static$0(SourceFile:43)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
at com.sun.prism.sw.SWPipeline.(SourceFile:42)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:413)
at java.base/java.lang.Class.forName(Class.java:404)
at com.sun.prism.GraphicsPipeline.createPipeline(SourceFile:218)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(SourceFile:92)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(SourceFile:125)
at java.base/java.lang.Thread.run(Thread.java:1570)
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 com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(SourceFile:283)
at com.sun.javafx.tk.quantum.QuantumToolkit.init(SourceFile:253)
at com.sun.javafx.tk.Toolkit.getToolkit(SourceFile:268)
at com.sun.javafx.application.PlatformImpl.startup(SourceFile:291)
at com.sun.javafx.application.PlatformImpl.startup(SourceFile:163)
at com.sun.javafx.application.LauncherImpl.startToolkit(SourceFile:659)
at com.sun.javafx.application.LauncherImpl.launchApplication1(SourceFile:679)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(SourceFile:196)
at java.base/java.lang.Thread.run(Thread.java:1570)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(SourceFile:95)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(SourceFile:125)
... 1 more
Exception in thread "main" java.lang.RuntimeException: No toolkit found
at com.sun.javafx.tk.Toolkit.getToolkit(SourceFile:280)
at com.sun.javafx.application.PlatformImpl.startup(SourceFile:291)
at com.sun.javafx.application.PlatformImpl.startup(SourceFile:163)
at com.sun.javafx.application.LauncherImpl.startToolkit(SourceFile:659)
at com.sun.javafx.application.LauncherImpl.launchApplication1(SourceFile:679)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(SourceFile:196)
at java.base/java.lang.Thread.run(Thread.java:1570)

@ak005469075
Copy link

兄弟java什么版本,我win10 java-17,可以启动

@ljy1058318852
Copy link
Contributor

非常抱歉,目前发现在Mac上的M系列处理器的兼容性还有待改进。即使在1.8版本中能够运行,但涉及到反编译时可能会遇到问题。这种情况下建议您在虚拟机中使用。【已经计划在下一个版本中改进对M系列处理器的兼容性】

@niuTT
Copy link

niuTT commented May 29, 2024

下载javafx17 后使用 java --module-path ./javafx17/lib --add-modules ALL-MODULE-PATH -jar PotatoTool-1.1-jdk11+.jar 完美运行

@ljy1058318852
Copy link
Contributor

下载javafx17 后使用 java --module-path ./javafx17/lib --add-modules ALL-MODULE-PATH -jar PotatoTool-1.1-jdk11+.jar 完美运行

非常好的办法,非常感谢niuTT提出的临时解决方案。
当前版本在打包的时候,忘记将arm对应的javafx环境打包其中,目前的临时解决办法就是自己下载javafx环境,然后在运行时引入。
当然在下个版本会改进,不需要麻烦用户做操作

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants