What's the difference between Java 3D and OpenGL/Direct3D/PHIGS/, etc? Java3D is another 3D programming API that exists on a similar level to OpenGL, Direct3D, PHIGS and similar systems. It is designed to use hardware accelaration wherever possible based on the underlying graphics architecture of the OS. That is, J3D provides a 3D rendering API for the Java language, but at the same time it may use OpenGL to do the interface to the hardware. J3D does not require direct hardware device driver support like the other APIs because it could rely on them to build its functionality. Sun is encouraging graphics board vendors to provide native implementations of J3D, but nothing has beenseen yet.
For unix users Sun's Java3D is implemented on top of OpenGL. For Win32 users Java3D is available for OpenGL and Direct3D.
There are Java bindings to the other APIs. GL4Java is an OpenGL binding written in Java.