M1 Mac下IntelliJ开发Minecraft Forge模组遇架构不兼容错误求助
问题:M1 MacBook Air上运行Minecraft Forge 1.18.2模组runClient任务报错(LWJGL架构不兼容)
环境信息
- 设备:M1 MacBook Air
- 开发场景:跟随Kaupenjoe教程开发Minecraft Forge 1.18.2模组
- JDK:已尝试多个aarch64版本的Eclipse Temurin 17
问题详情
运行runClient任务时持续报错,核心错误为liblwjgl.dylib是x86_64架构,与设备所需的arm64e/arm64不兼容,最终导致无法初始化com.mojang.blaze3d.systems.RenderSystem。虽知晓当前LWJGL为x86版本,但不知如何替换为arm64版本。
完整错误日志
Exception in thread "Render thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:39) at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.Launcher.run(Launcher.java:106) at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.Launcher.main(Launcher.java:77) at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) at cpw.mods.bootstraplauncher@1.0.0/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at MC-BOOTSTRAP/fmlloader@1.18.2-40.2.10/net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.lambda$launchService$0(ForgeClientUserdevLaunchHandler.java:24) at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) ... 7 more Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.mojang.blaze3d.systems.RenderSystem at TRANSFORMER/minecraft@1.18.2/net.minecraft.SystemReport.setDetail(SystemReport.java:65) at TRANSFORMER/minecraft@1.18.2/net.minecraft.client.Minecraft.fillSystemReport(Minecraft.java:2284) at TRANSFORMER/minecraft@1.18.2/net.minecraft.client.Minecraft.fillReport(Minecraft.java:2277) at TRANSFORMER/minecraft@1.18.2/net.minecraft.client.main.Main.main(Main.java:178) ... 13 more Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.UnsatisfiedLinkError: /private/var/folders/zs/9xkpdhg532l8zcrkm3sqmf480000gp/T/lwjgleversbergb26/3.2.1-SNAPSHOT/liblwjgl.dylib: dlopen(/private/var/folders/zs/9xkpdhg532l8zcrkm3sqmf480000gp/T/lwjgleversbergb26/3.2.1-SNAPSHOT/liblwjgl.dylib, 0x0001): tried: '/private/var/folders/zs/9xkpdhg532l8zcrkm3sqmf480000gp/T/lwjgleversbergb26/3.2.1-SNAPSHOT/liblwjgl.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/private/var/folders/zs/9xkpdhg532l8zcrkm3sqmf480000gp/T/lwjgleversbergb26/3.2.1-SNAPSHOT/liblwjgl.dylib' (no such file), '/private/var/folders/zs/9xkpdhg532l8zcrkm3sqmf480000gp/T/lwjgleversbergb26/3.2.1-SNAPSHOT/liblwjgl.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')) [in thread "Render thread"] at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174) at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394) at java.base/java.lang.Runtime.load0(Runtime.java:755) at java.base/java.lang.System.load(System.java:1970) Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.mojang.blaze3d.systems.RenderSystem at MC-BOOTSTRAP/org.lwjgl/org.lwjgl.system.Library.loadSystem(Library.java:162) Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.UnsatisfiedLinkError: /private/var/folders/zs/9xkpdhg532l8zcrkm3sqmf480000gp/T/lwjgleversbergb26/3.2.1-SNAPSHOT/liblwjgl.dylib: dlopen(/private/var/folders/zs/9xkpdhg532l8zcrkm3sqmf480000gp/T/lwjgleversbergb26/3.2.1-SNAPSHOT/liblwjgl.dylib, 0x0001): tried: '/private/var/folders/zs/9xkpdhg532l8zcrkm3sqmf480000gp/T/lwjgleversbergb26/3.2.1-SNAPSHOT/liblwjgl.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/private/var/folders/zs/9xkpdhg532l8zcrkm3sqmf480000gp/T/lwjgleversbergb26/3.2.1-SNAPSHOT/liblwjgl.dylib' (no such file), '/private/var/folders/zs/9xkpdhg532l8zcrkm3sqmf480000gp/T/lwjgleversbergb26/3.2.1-SNAPSHOT/liblwjgl.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')) [in thread "Render thread"] at MC-BOOTSTRAP/org.lwjgl/org.lwjgl.system.Library.loadSystem(Library.java:152) at MC-BOOTSTRAP/org.lwjgl/org.lwjgl.system.Library.loadSystem(Library.java:116) at MC-BOOTSTRAP/org.lwjgl/org.lwjgl.system.Library.loadSystem(Library.java:67) at MC-BOOTSTRAP/org.lwjgl/org.lwjgl.system.Library.<clinit>(Library.java:50) at MC-BOOTSTRAP/org.lwjgl/org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:97) at TRANSFORMER/minecraft@1.18.2/com.mojang.blaze3d.platform.MemoryTracker.<clinit>(MemoryTracker.java:8) at TRANSFORMER/minecraft@1.18.2/com.mojang.blaze3d.vertex.BufferBuilder.<init>(BufferBuilder.java:48) at TRANSFORMER/minecraft@1.18.2/com.mojang.blaze3d.vertex.Tesselator.<init>(Tesselator.java:19) at TRANSFORMER/minecraft@1.18.2/com.mojang.blaze3d.vertex.Tesselator.<init>(Tesselator.java:23) at TRANSFORMER/minecraft@1.18.2/com.mojang.blaze3d.vertex.Tesselator.<clinit>(Tesselator.java:11) at TRANSFORMER/minecraft@1.18.2/com.mojang.blaze3d.systems.RenderSystem.<clinit>(RenderSystem.java:46) at TRANSFORMER/minecraft@1.18.2/net.minecraft.client.main.Main.main(Main.java:167) ... 13 more > Task :runClient FAILED Execution failed for task ':runClient'. > Process 'command '/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output.
解决方案
1. 强制指定arm64架构的LWJGL依赖
在项目根目录的build.gradle文件中,修改依赖配置,明确引入arm64版本的LWJGL natives:
// 确保repositories块包含mavenCentral repositories { mavenCentral() } dependencies { // 替换原有LWJGL相关依赖,指定arm64 natives implementation platform('org.lwjgl:lwjgl-bom:3.2.1') implementation 'org.lwjgl:lwjgl' implementation 'org.lwjgl:lwjgl-glfw' implementation 'org.lwjgl:lwjgl-opengl' runtimeOnly 'org.lwjgl:lwjgl:natives-macos-arm64' runtimeOnly 'org.lwjgl:lwjgl-glfw:natives-macos-arm64' runtimeOnly 'org.lwjgl:lwjgl-opengl:natives-macos-arm64' }
修改完成后,执行以下命令清理缓存并重新运行:
./gradlew clean ./gradlew runClient
2. 确认Gradle使用arm64 JDK
- 打开终端,输入
java -version,确认输出包含aarch64或arm64字样 - 若输出为x86_64,检查
JAVA_HOME环境变量:
需指向arm64版本的JDK路径,例如echo $JAVA_HOME/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home - 可在项目根目录创建
gradle.properties文件,指定Gradle使用的JDK:org.gradle.java.home=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
3. 禁用终端的Rosetta模式
- 找到终端应用(路径:/Applications/Utilities/Terminal.app)
- 右键点击终端,选择「显示简介」
- 取消勾选「使用Rosetta打开」
- 重启终端后,重新运行
./gradlew runClient
内容的提问来源于stack exchange,提问作者duckofjudgement
相关产品推荐
相关产品推荐

