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

使用Maven打包后出现org/lwjgl/glfw/GLFW类找不到错误求助

问题原因及解决方案

核心问题

你执行mvn clean compile package时,maven-dependency-plugin的copy-dependencies目标绑定在install阶段,这个阶段不会在package命令流程中触发,导致依赖的LWJGL相关JAR(包括lwjgl-glfw)没有被复制到target/lib目录。运行JAR时类路径找不到对应类,因此抛出NoClassDefFoundError。

具体修改步骤

1. 调整依赖复制的执行阶段

修改maven-dependency-plugin的执行阶段为package,这样执行package命令时就会自动复制依赖到lib目录:

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase> <!-- 将install改为package -->
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                <!-- 可选:显式指定复制native依赖的classifier,确保native库被正确复制 -->
                <includeClassifiers>${lwjgl.natives}</includeClassifiers>
            </configuration>
        </execution>
    </executions>
</plugin>

2. 修复编译版本冲突

你的pom.xml中,properties里配置的编译源和目标版本是12,但maven-compiler-plugin里指定的release版本是11,存在版本不一致,统一为12:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <release>12</release> <!-- 与properties中的版本保持一致 -->
    </configuration>
</plugin>

验证操作

修改完成后,执行mvn clean package,进入target目录:

  • 确认lib目录存在,且包含lwjgl-glfw-${lwjgl.version}.jar和对应的native依赖JAR
  • 运行java -jar javaSwingBuild_2D-0.0.1-SNAPSHOT.jar测试功能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 01:40:20