java.lang.NoClassDefFoundError:eclipse中的com / jogamp / common / type / WriteCloneable jogl 2

时间:2011-09-27 23:14:57

标签: eclipse exception jogl

我在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" 

好像我错过了一个罐子......可以让我知道我在这里做错了吗?

4 个答案:

答案 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月的二进制文件并且工作正常。