Java 3D is part of the Java Media APIs developed by Javasoft. Providing developers with high level constructs for creating and manipulating 3D geometry in a platformindependent way, the Java 3D API is a set of classes for writing three-dimensional graphics applications and 3D applets.
Since a Java3D program runs at the same level as any other Java program/applet 
  in the virtual machine, controlling the virtual world
  becomes very easy through calling the Java3D API from any Java program. Although 
  Java3D and VRML both appear to target the same application area, they have fundamental 
  differences. VRML is aimed at a presentational application area and includes 
  some support for runtime programming operations through its External Authoring 
  Interface and the Script node, as mentioned earlier. Java 3D; however, is specifically 
  a Java language API, and is only a runtime API. Java 3D does not define a file 
  format of its own and is designed to provide support for applications that require
  higher levels of performance and interactivity, such as real-time games and 
  sophisticated mechanical CAD applications. In this sense, Java 3D provides a 
  lower-level, underlying platform API.
Many VRML implementations can be layered on top of Java 3D. In fact, it is possible to write a VRML browser using Java 3D, such as the browser developed by VRML consortiums Java3D and VRML Working group.