Image

Listens: David Bowie - Seven Years In Tibet

Problem with Java3D and Eclipse...

I'm not sure if it's only going to happen in Eclipse, but that's where I'm having the issue. I installed the Java3D API for openGL in Windows. I set up an app using the library, including the references in the project settings, which it appears to get, because I don't get any "object not defined" errors or anything.

However, when it hits this line: GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();, it crashes, throwing this stack trace:

&lt;code&gt;<br />java.lang.UnsatisfiedLinkError: no J3D in java.library.path<br /> at java.lang.ClassLoader.loadLibrary(Unknow<wbr />n Source)<br /> at java.lang.Runtime.loadLibrary0(Unknown Source)<br /> at java.lang.System.loadLibrary(Unknown Source)<br /> at javax.media.j3d.MasterControl$22.run(Mas<wbr />terControl.java:889)<br /> at java.security.AccessController.doPrivile<wbr />ged(Native Method)<br /> at javax.media.j3d.MasterControl.loadLibrar<wbr />ies(MasterControl.java:886)<br /> at javax.media.j3d.VirtualUniverse.&lt;clinit&gt;<wbr />(VirtualUniverse.java:229)<br /> at Hello3D.&lt;init&gt;(Hello3D.java:21)<br /> at sun.reflect.NativeConstructorAccessorImp<wbr />l.newInstance0(Native Method)<br /> at sun.reflect.NativeConstructorAccessorImp<wbr />l.newInstance(Unknown Source)<br /> at sun.reflect.DelegatingConstructorAccesso<wbr />rImpl.newInstance(Unknown Source)<br /> at java.lang.reflect.Constructor.newInstanc<wbr />e(Unknown Source)<br /> at java.lang.Class.newInstance0(Unknown Source)<br /> at java.lang.Class.newInstance(Unknown Source)<br /> at sun.applet.AppletPanel.createApplet(Unkn<wbr />own Source)<br /> at sun.applet.AppletPanel.runLoader(Unknown Source)<br /> at sun.applet.AppletPanel.run(Unknown Source)<br /> at java.lang.Thread.run(Unknown Source)<br /><br />&lt;/code&gt; And of course, since it's short, the whole program:<br />&lt;code&gt;<br />public class Hello3D extends Applet {<br /> public Hello3D() {<br /> setLayout(new BorderLayout());<br /> GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(<wbr />);<br /> Canvas3D c = new Canvas3D(config);<br /> add("center", c);<br /> <br /> BranchGroup scene = createSceneGraph();<br /> scene.compile();<br /> <br /> SimpleUniverse u = new SimpleUniverse(c);<br /> u.getViewingPlatform().setNominalViewing<wbr />Transform();<br /> u.addBranchGraph(scene);<br /> }<br /> <br /> public BranchGroup createSceneGraph() {<br /> BranchGroup objRoot = new BranchGroup();<br /> <br /> objRoot.addChild(new ColorCube(0.4));<br /> <br /> return objRoot;<br /> }<br /><br />}<br />&lt;/code&gt;

Some of you may recognize this as the Hello3D app from the Java3d tutorial.


The quoted line above is line 21 in Hello3D.java. Any good way to fix this?