2

我正在尝试在我的 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 库似乎有问题,但我不知道是什么问题。

4

2 回答 2

2

jogl-all.jar、gluegen-rt.jar 和gluegen.jar 文件位于构建路径中。我得到以下异常:

从构建路径中删除gluegen.jar。确保在运行时也将这两个 jar 添加到类路径中!在编译时和运行时只需要 jogl-all.jar 和 gluegen-rt.jar (rt == runtime)。

您还需要为您在gluegen-rt 旁边使用的平台准备一份匹配的本机jargluegen-rt-natives- os.and.arch .jar 和jogl-all-natives- os.and.arch .jar 的副本.jar 和 jogl-all.jar http://jogamp.org/jogl/doc/deployment/JOGL-DEPLOYMENT.html#NativeJARFiles

于 2013-11-07T14:23:23.093 回答
0

您是否尝试过 Maven 依赖项而不是手动添加这些罐子?

我做了一个干净的 maven 项目,添加了一个包含以下文件的新用户库:

  • org.jzy3d-0.9.jar
  • 依赖项/misc/opencsv-2.1.jar
  • 依赖项/misc/org.convexhull.jar
  • 依赖项/misc/swt.jar
  • 依赖项/misc/swt-debug.jar

之后,我添加了以下 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>

构建并运行,无一例外。


一个更清洁的解决方案是:

于 2013-10-09T19:05:55.543 回答