我在Windows 7 64位并使用eclipse indigo。我下载了最新版本的jogl 2,并在此链接后创建了一个eclipse项目
https://sites.google.com/site/justinscsstuff/jogl-tutorial-2
这个教程是旧的,因为jogl下载中的jar不匹配,我已经包含了所有的jar,并为每个jar设置了本机库目录。我写了一个小的jogl测试程序,它创建了一个GLProfile,GlCapabilities和一个awt框架。我得到了这个例外:
java.lang.NoClassDefFoundError: com/jogamp/common/type/WriteCloneable
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Caused by: java.lang.ClassNotFoundException: com.jogamp.common.type.WriteCloneable
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 24 more
Exception in thread "main"
好像我错过了一个罐子......可以让我知道我在这里做错了吗?
答案 0 :(得分:10)
我正在使用Matlab 2014a中的jogl-all.jar。当我添加库 glugen-rt.jar 时,上面的错误消失了,一切运行顺利。
(还记得在执行应用程序时-Djava.library.path = / path / to / native / files,在我的例子中,这是-Djava.library.path = / Applications / MATLAB_R2014a.app / bin / maci64 )
答案 1 :(得分:3)
尝试添加gluegen。
例如
<dependency>
<groupId>org.jogamp.jogl</groupId>
<artifactId>jogl-all</artifactId>
<version>2.0-rc11</version>
</dependency>
和
<dependency>
<groupId>org.jogamp.gluegen</groupId>
<artifactId>gluegen-rt-main</artifactId>
<version>2.0-rc11</version>
</dependency>
答案 2 :(得分:0)
我对JOGL jar文件有类似的问题。见here。另外,查看jogamp wiki上的教程(看起来Wade在维基上非常活跃)。
答案 3 :(得分:0)
我检查了你给出的链接,看起来他们在制作完教程后改变了结构。在任何情况下,我都会下载2011年3月的二进制文件并且工作正常。