运行 jzy3d 演示导致 ClassNotFoundException

Running jzy3d demos result in ClassNotFoundException

问题如下,jzy3d demo启动时ScatterDemo.java:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GLProfile
at org.jzy3d.chart.Settings.<init>(Settings.java:19)
at org.jzy3d.chart.Settings.getInstance(Settings.java:48)
at org.jzy3d.analysis.AnalysisLauncher.open(AnalysisLauncher.java:18)
at org.jzy3d.analysis.AnalysisLauncher.open(AnalysisLauncher.java:13)
at org.jzy3d.demos.scatter.ScatterDemo.main(ScatterDemo.java:16)
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GLProfile
at java.net.URLClassLoader.run(URLClassLoader.java:366)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 5 more
Java Result: 1

配置为 NetBeans 7.3.1、jzy3d-api-0.9.1、jzy3d-swt-0.9.1、log4j-1.2.17、gluegen-rt(最新稳定版)、jogl-all (最新稳定), JDK1.7

我知道以下更改(将 javax.media.opengl 全部移动到 com.jogamp.opengl、https://jogamp.org/bugzilla/show_bug.cgi?id=682)。我已经完成了将 .jar 文件包含到项目中的常规过程。

项目编译正常,不运行。

我的问题是:我能以某种方式将 javax.media.opengl.* 重定向到 com.jogamp.opengl.* 吗?解决这个问题的正确方法是什么?

如您所见here,即使主分支 (0.9.2) 上的代码也不是基于最新版本的 JOGL。请让 Martin Pernollet 进行必要的更改(将 javax.media.* 替换为 com.jogamp.*)或自行更改。您可以重建 Jzy3d 以使用导入子句的修改来测试它。这是解决这个简单问题的正确方法。