You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M1设备IntelliJ运行OpenGL项目报GLFW_PLATFORM_ERROR如何解决

M1系列Mac运行LWJGL游戏项目GLFW_PLATFORM_ERROR解决方案

错误现象

[LWJGL] GLFW_PLATFORM_ERROR error
Description : Cocoa: Failed to find service port for display
Stacktrace :
org.lwjgl.glfw.GLFW.glfwInit(GLFW.java:830)
jade.Window.init(Window.java:44)
jade.Window.run(Window.java:35)
Main.main(Main.java:6)

核心原因

M1系列芯片的Mac原生不提供OpenGL驱动,仅通过Metal转译层支持OpenGL接口,旧版LWJGL绑定的GLFW库未适配Apple Silicon架构,且Homebrew安装的系统级GLFW默认不会被项目内置的LWJGL依赖直接调用,因此会出现初始化失败的问题。

解决方案

  • 步骤1:升级LWJGL到适配Apple Silicon的版本

    优先将项目依赖的LWJGL版本升级到3.3.0及以上,该版本开始原生支持arm64架构,无需转译即可调用系统GLFW和OpenGL转译层。如果使用Maven/Gradle管理依赖,需要明确为lwjgl-glfw依赖指定natives-macos-arm64分类器,拉取适配M1芯片的原生绑定库。
  • 步骤2:指定项目调用Homebrew安装的GLFW

    打开IntelliJ对应项目的运行配置,在「VM选项」栏添加如下参数:
    -Dorg.lwjgl.glfw.libname=/opt/homebrew/lib/libglfw.dylib
    
    M1版Homebrew默认安装路径为/opt/homebrew,如果自定义过安装路径或者使用Intel版Homebrew,替换为实际的libglfw.dylib文件路径即可。
  • 步骤3:调整IDE运行架构(适配旧版本LWJGL)

    如果项目无法升级LWJGL版本,必须使用3.3.0以下的版本,右键IntelliJ.app选择「显示简介」,勾选「使用Rosetta打开」,强制IDE运行在x86转译模式下,匹配旧版LWJGL的x86原生绑定库。
  • 步骤4:强制指定系统OpenGL转译层

    如果调整后仍然报OpenGL相关错误,在VM选项中额外添加如下参数:
    -Dorg.lwjgl.opengl.libname=/System/Library/Frameworks/OpenGL.framework/OpenGL
    
    强制项目调用系统内置的OpenGL转译层,避免依赖加载失败。

内容的提问来源于stack exchange,提问作者Rehan Samaratunga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:24:02