Login  Register

Re: NoClassDefFoundError: GLCapabilitiesChooser on OS X Snow Leopard and Java 1.6

Posted by apoy2k on May 29, 2012; 8:15am
URL: https://forum.jogamp.org/NoClassDefFoundError-GLCapabilitiesChooser-on-OS-X-Snow-Leopard-and-Java-1-6-tp4008344p4020329.html

I can reproduce it. When I create a new Shape3D without any arguments, everything works fine. But as soon as I pass the first argument (TriangleArray), the error pops up.

So, a minimum (not) working example would be

import javax.media.j3d.*;

public class Tester {

    public static void main(String[] args) throws ClassNotFoundException {
        TriangleArray triangleArray = new TriangleArray(6, 7);
        new Shape3D(triangleArray);
    }

}
$ javac Tester.java
$ java Tester
Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GLCapabilitiesChooser
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:169)
	at javax.media.j3d.Pipeline$1.run(Pipeline.java:143)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:138)
	at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:926)
	at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:280)
	at javax.media.j3d.NodeRetained.dirtyBoundsCache(NodeRetained.java:959)
	at javax.media.j3d.Shape3DRetained.setGeometry(Shape3DRetained.java:353)
	at javax.media.j3d.Shape3D.<init>(Shape3D.java:157)
	at Tester.main(Tester.java:7)
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GLCapabilitiesChooser
	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 sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	... 11 more

I think it's an issue of the ClassLoader, because if I write

System.out.println(GLCapabilitiesChooser.class);

In the main method, my console writes without any errors interface javax.media.opengl.GLCapabilitiesChooser. So, the class is actually found without problems, but the URLClassLoader doesn't find it.