NetBeans12.4下Maven构建的JOGL2.3.2示例编译通过但运行失败如何解决
你遇到的报错核心原因是system范围的Maven依赖默认不会被加入运行时类路径,导致JVM找不到JOGL的相关类,同时system路径配置本身也不符合Maven的规范要求。
解决方法(推荐方案,彻底消除警告和运行错误)
步骤1:将本地jar安装到本地Maven仓库
打开终端进入项目根目录/home/me/NetBeansProjects/JOGLfirst,执行以下命令:
mvn install:install-file -Dfile=./LIBs/jogamp-fat.jar -DgroupId=org.jogamp -DartifactId=jogamp-fat -Dversion=2.3.2 -Dpackaging=jar
步骤2:修改pom.xml依赖配置
删掉原来依赖中的<scope>system</scope>和<systemPath>两行,修改后的依赖配置如下:
<dependencies> <dependency> <groupId>org.jogamp</groupId> <artifactId>jogamp-fat</artifactId> <version>2.3.2</version> </dependency> </dependencies>
步骤3:校验并重新运行
- 确认
HelloTriangleSimple.java顶部的包声明为package com.mycompany;,和文件存放路径保持一致 - 在NetBeans中右键项目,选择「Reload POM」或者「Build with Dependencies」刷新项目配置
- 重新右键
HelloTriangleSimple.java选择「Run File」即可正常运行
临时替代方案(不修改依赖安装方式)
如果不想把jar安装到本地仓库,可以在pom.xml中添加exec插件配置,强制将system范围的依赖加入运行时类路径:
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.0.0</version> <configuration> <executable>java</executable> <classpathScope>compile</classpathScope> </configuration> </plugin> </plugins> </build>
内容的提问来源于stack exchange,提问作者neblaz
相关产品推荐
相关产品推荐

