Java is understood to be a complex and powerful software platform, individual editions of which are available in a wide variety of operating systems and hardware platforms. Java Runtime Environment (JRE) is used to implement Java technology. JRE combines the Java Virtual Machine (JVM) and standard class libraries (API). The current stable version of the most widely used Java Standard Edition is Java SE 6.
Java has an extensive range of libraries all the way from zip libraries or GUI programming via Web Services, Remote Method Invocation (RMI) or database access up to the execution of native program codes. There is also the option of using relevant APIs for multimedia objects, 3D elements or speech output. In addition to client-side applications, Java can be run server-side, for instance to dynamically generate web content (cf. Java servlets or JSP).
Java programs are initially translated into so-called bytecode, which is then translated into machine code on the actual platform at runtime. This provides the great advantage of platform independence, since the same Java bytecode can be executed on a wide variety of terminal devices ranging from PC to PDA or embedded device.
The Java specification was developed by SUN Microsystems as a reference implementation. This reference implementation is by far the most widespread of Java implementations.
Whilst Java was exclusively proprietary to begin with, and the source code was not disclosed, moves began in 2007 to successively publish Java technology under the Open Source GNU General Public License (GPLv2). Java continues to be developed by SUN Microsystems, supported and promoted by a strong Community Process.