如何为jzy3d使用旧的JOGL版本?

时间:2015-11-30 22:19:49

标签: jzy3d

我今天发现了关于jzy3d的内容,它看起来与我目前的学校项目所需要的完全相同(这是关于在3D中绘制表面,与水文地质有关)。我下载了演示(版本0.9.1),但是当我尝试运行它(更具体地说是3D表面演示又名this code)时,我收到以下错误:

 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时,我是全新的,所以我只是跟着this模式跟上面的文件。我现在有一个名为OldJOGL的java项目,包含jogl.all.jar和gluegen-rt.jar。

然后我将OldJOGL添加为所有jzy3d(api,core等)项目(通过maven导入)中的必需项目,并将OldJOGL +所有jzy3d项目添加为“TestGraph”中的必需项目(包含单个类,其中我基本上复制了演示中给出的代码。 但它仍然显示相同的错误消息!

我最有可能做错了,因此我的问题是:如何让jzy3d使用旧的JOGL版本? (这是真正的问题吗?)

提前致谢

PS:对不起,如果我的英语有时很尴尬,那不是我的语言:(

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您可以使用version 1.0.0修复此兼容性问题。