我今天发现了 jzy3d,它看起来与我当前学校项目所需的完全一样(这是关于在 3D 中绘制表面,与水文地质学相关)。我下载了演示(版本 0.9.1),但是当我尝试运行它(更具体地说是 3d 表面演示,也就是这段代码)时,我收到以下错误:
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.chart.Chart.<init>(Chart.java:60)
at org.jzy3d.chart.Chart.<init>(Chart.java:44)
at TestGraph.getChart(TestGraph.java:36)
at TestGraph.main(TestGraph.java:42)
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GLProfile
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more
根据我在互联网上的了解,这可能与 jzy3d 需要和旧版本的 JOGL 有关,所以我下载了 jogamp-windows-amd64.7z (2.0-rc3 存档...似乎没问题,因为它包含 javax.media.* 而不是 com.jogamp.*)。在 Eclipse 上导入 .jar 时,我是全新的,所以我只是按照上述文件的模式进行操作。我现在确实有一个名为 OldJOGL 的 Java 项目,其中包含 jogl.all.jar 和gluegen-rt.jar。
然后,我将 OldJOGL 添加为我所有 jzy3d(api、核心等)项目(通过 maven 导入)中的必需项目,并将 OldJOGL +所有 jzy3d 项目作为“TestGraph”中的必需项目(包含一个我基本上复制的类)演示中给出的代码)。但它仍然显示相同的错误消息!
我很可能做错了什么,因此我的问题是:我怎样才能让 jzy3d 使用旧的 JOGL 版本?(这是真正的问题吗?)
提前致谢
PS:对不起,如果我的英语有时很尴尬,那不是我的母语:(