我正在尝试在我的Java项目中使用JZY3D库。
从基础开始,我设置了以下main():
public static void main(final String[] args) {
new GLCapabilities(GLProfile.getDefault());
}
jogl-all.jar,gluegen-rt.jar和gluegen.jar文件位于构建路径中。我得到以下异常:
Exception in thread "main" java.lang.NoSuchMethodError: javax.media.opengl.GLDrawableFactory.initSingleton()V
at javax.media.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1444)
at javax.media.opengl.GLProfile.access$100(GLProfile.java:76)
at javax.media.opengl.GLProfile$1.run(GLProfile.java:174)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.opengl.GLProfile.initSingleton(GLProfile.java:140)
at javax.media.opengl.GLProfile.initSingleton(GLProfile.java:199)
at javax.media.opengl.GLProfile.getProfileMap(GLProfile.java:1914)
at javax.media.opengl.GLProfile.get(GLProfile.java:815)
at javax.media.opengl.GLProfile.getDefault(GLProfile.java:602)
at javax.media.opengl.GLProfile.getDefault(GLProfile.java:613)
at eu.crisis_economics.abm.model.SpecsCompetitionStrategyCFO.main(SpecsCompetitionStrategyCFO.java:312)
似乎3d库存在问题,但我无法弄清楚是什么。
答案 0 :(得分:2)
jogl-all.jar,gluegen-rt.jar和gluegen.jar文件位于构建路径中。我得到以下异常:
从构建路径中删除gluegen.jar。 确保在运行时将这两个jar添加到类路径中! 在编译时和运行时只需要jogl-all.jar和gluegen-rt.jar(rt == runtime)。
此外,您还需要一份匹配的原生jars gluegen-rt-natives- os.and.arch .jar和jogl-all-natives- os.and.arch .jar用于您在gluegen-rt.jar和jogl-all.jar旁边使用的平台 http://jogamp.org/jogl/doc/deployment/JOGL-DEPLOYMENT.html#NativeJARFiles
答案 1 :(得分:0)
您是否尝试过Maven依赖,而不是手动添加这些jar?
我制作了一个干净的maven项目,添加了一个包含以下文件的新用户库:
之后,我添加了以下maven依赖项:
<dependency>
<groupId>org.jogamp.gluegen</groupId>
<artifactId>gluegen-rt-main</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.jogamp.jogl</groupId>
<artifactId>jogl-all-main</artifactId>
<version>2.0.2</version>
</dependency>
Build&amp;无异常运行。
更清洁的解决方案是:
jzy3d-master
jzy3d-api
依赖项