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

LWJGL AWTGLCanvas.render()触发NoSuchMethodError问题求助

解决Windows下LWJGL3+LWJGL3-AWT的NoSuchMethodError问题

问题现象

在Windows 11环境下,使用LWJGL 3.3.6和lwjgl3-awt 0.1.8运行OpenGL代码时,调用canvas.render()抛出以下异常:

Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: 'short org.lwjgl.system.windows.User32.RegisterClassEx(org.lwjgl.system.windows.WNDCLASSEX)'
    at org.lwjgl.opengl.awt.PlatformWin32GLCanvas.createDummyWindow(PlatformWin32GLCanvas.java:134)
    at org.lwjgl.opengl.awt.PlatformWin32GLCanvas.create(PlatformWin32GLCanvas.java:154)
    at org.lwjgl.opengl.awt.AWTGLCanvas.beforeRender(AWTGLCanvas.java:60)
    at org.lwjgl.opengl.awt.AWTGLCanvas.render(AWTGLCanvas.java:101)
    at com.myCompany.GLTest$2.run(GLTest.java:52)

相同配置在Linux环境下可正常运行。

问题原因分析

  1. XML语法错误导致依赖版本异常:pom.xml中lwjgl3-awt.version属性的闭合标签写错,导致lwjgl3-awt的版本未被正确设置为0.1.8。
  2. 缺少Windows系统依赖的Native库:lwjgl3-awt在Windows下需要调用User32等系统API,对应的lwjgl-system模块Native库未被显式引入。
  3. 不必要的GLFW初始化冲突:代码中在AWT OpenGL上下文内调用glfwInit(),属于冗余操作且可能引发上下文冲突。

解决方案

1. 修复pom.xml的版本属性错误

找到properties中的lwjgl3-awt.version配置,修正闭合标签:

<properties>
    <!-- 其他属性保持不变 -->
    <lwjgl3-awt.version>0.1.8</lwjgl3-awt.version>
</properties>

2. 添加lwjgl-system的Native依赖

在dependencies节点中添加Windows下需要的lwjgl-system Native库:

<dependencies>
    <!-- 已有依赖保持不变 -->
    <dependency>
        <groupId>org.lwjgl</groupId>
        <artifactId>lwjgl-system</artifactId>
        <classifier>${lwjgl.natives}</classifier>
    </dependency>
</dependencies>

3. 移除代码中的冗余GLFW初始化

修改initGL()方法,删除不必要的glfwInit()调用:

@Override
public void initGL() {
    createCapabilities();
    glClearColor(0.3f, 0.4f, 0.5f, 1);
}

4. 额外优化:调整窗口初始化顺序

原代码中先设置窗口可见再添加画布,可能导致渲染异常,建议调整顺序:

JFrame wnd = new JFrame();
wnd.setLayout(new BorderLayout());
wnd.setPreferredSize(new Dimension(500, 500));
wnd.add(canvas); // 先添加画布
wnd.pack();
wnd.setVisible(true); // 再设置可见
wnd.transferFocus();

验证

完成上述修改后,重新编译运行代码,Windows环境下的NoSuchMethodError应该会消失,画布可以正常渲染指定的背景色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:44:53