I'm trying to start programming with Java 3D, but I think I'm having problems with the initial setup. I installed Java3D using the amd64 bin script into the active jre: /usr/lib/jvm/java-6-sun/jre/. I'm working in Eclipse and have included j3dcore.jar, j3dutils.jar, and vecmath.jar in the build path. It compiles just fine.
My program is a very simple test from a tutorial:
package tests;
import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.BranchGroup;
public class Hello3d {
public Hello3d()
{
SimpleUniverse universe = new SimpleUniverse();
BranchGroup group = new BranchGroup();
group.addChild(new ColorCube(0.3));
universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(group);
}
public static void main(String[] args) {
new Hello3d();
System.out.println("blah");
}
}
And I get the following exception when it runs:
Exception in thread "main" java.lang.NoClassDefFoundError: javax.media.j3d.X11NativeConfigTemplate3D
at java.lang.Class.initializeClass(libgcj.so.90)
at java.lang.Class.forName(libgcj.so.90)
at javax.media.j3d.NativeConfigTemplate3D$1.run(NativeConfigTemplate3D.java:60)
at java.security.AccessController.doPrivileged(libgcj.so.90)
at javax.media.j3d.NativeConfigTemplate3D.createNativeConfigTemplate3D(NativeConfigTemplate3D.java:55)
at javax.media.j3d.NativePipeline.initialize(NativePipeline.java:107)
at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:151)
at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:926)
at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:280)
at java.lang.Class.initializeClass(libgcj.so.90)
at java.lang.Class.initializeClass(libgcj.so.90)
at tests.Hello3d.<init>(Hello3d.java:11)
at tests.Hello3d.main(Hello3d.java:19)
Caused by: java.lang.ClassNotFoundException: sun.awt.X11GraphicsDevice not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/home/max/Dropbox/Projects/Basic Java3D Linux AMD64/,file:/home/max/Dropbox/Projects/Basic Java3D Linux AMD64/Java3D/Linux AMD64/lib/ext/j3dcore.jar,file:/home/max/Dropbox/Projects/Basic Java3D Linux AMD64/Java3D/Linux AMD64/lib/ext/j3dutils.jar,file:/home/max/Dropbox/Projects/Basic Java3D Linux AMD64/Java3D/Linux AMD64/lib/ext/vecmath.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at java.lang.Class.forName(libgcj.so.90)
at java.lang.Class.initializeClass(libgcj.so.90)
...12 more
I installed libgcj via Synaptic (I'm running Ubuntu) but still get the same error, so I'm unsure how I should proceed. Any ideas what's wrong?