1

我今天发现了 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:对不起,如果我的英语有时很尴尬,那不是我的母语:(

4

2 回答 2

1

您应该联系 Martin Pernollet,以便他更新 Jzy3D 以支持 JOGL 2.3.2。如果他没有足够的时间,请在 JogAmp 论坛上与我联系,我会提出 pull request,他会为您提供支持 JOGL 2.3.2 及更高版本的版本。我确认当前源代码不适用于更高版本的 JOGL: https ://github.com/jzy3d/jzy3d-api/blob/master/jzy3d-api/src/api/org/jzy3d/chart/ Settings.java#L3

JOGL 中不再存在“javax.media”。

于 2015-11-30T22:31:05.740 回答
0

您可以使用修复此兼容性问题的1.0.0 版本。

于 2017-05-13T09:31:43.237 回答