Java Platform, Standard Edition or Java SE is a widely used platform for programming in the Java language. It is the Java Platform used to deploy portable applications for general use. In practical terms, Java SE consists of a virtual machine, which must be used to run Java programs, together with a set of libraries (or "packages") needed to allow the use of file systems, networks, graphical interfaces, and so on, from within those programs.
Nomenclature, standards and specifications
Java SE was known as Java 2 Platform, Standard Edition or J2SE from version 1.2 until version 1.5. The "SE" is used to distinguish the base platform from the Enterprise Edition Java EE and Micro Edition Java ME. The "2" was originally intended to emphasize the major changes introduced in version 1.2, but was removed in version 1.6. The naming convention has been changed several times over the Java version history.
Special purpose packages
Created to support Java applet creation, the java.applet package allows applications to be downloaded over a network and run within a guarded sandbox. Security restrictions are easily imposed on the sandbox.
Included in the java.beans package are various classes for developing and manipulating beans, reusable components defined by the JavaBeans architecture.
The java.awt, or Abstract Window Toolkit, provides access to a basic set of GUI widgets based on the underlying native platform's widget set, the core of the GUI event subsystem, and the interface between the native windowing system and the Java application
The java.rmi package provides Java remote method invocation to support remote procedure calls between two java applications running in different JVMs.
Support for security, including the message digest algorithm, is included in the java.security package.
An implementation of the JDBC API (used to access SQL databases) is grouped into the java.sql package.
The javax.rmi package provides the support for the remote communication between applications, using the RMI over IIOP protocol. This protocol combines RMI and CORBA features.
Swing is a collection of routines that build on java.awt to provide a platform independent widget toolkit. javax.swing uses the 2D drawing routines to render the user interface components instead of relying on the underlying native operating system GUI support.