The Java Runtime Environment or JRE provides a runtime-only subset of the Java programming language. End-users commonly utilise a JRE in (software) packages and plug-ins. The JRE itself is utilized by the J2SE SDK (more commonly called the JDK) and is required to run any application deployed on the Java platform. Essenntially, the JRE is the J2SE without development tools such as the java compiler, documentation tool and debugger.
Components of the JRE include:
- Java libraries - which are the compiled byte codes of source developed by the JRE implementor to support application development in java. Examples of these libraries are:
- The core libraries, which include:
- Collection libraries which implement data structures such as Lists, Dictionaries, Trees and Sets.
- XML Parsing libraries
- Security
- Internationalization and Localization libraries
- The integration libraries, which allow the application writer to communicate with external systems. These libraries include
- The Java Database Connectivity (JDBC) API for database access
- JNDI for lookup and discovery
- RMI and CORBA for distributed application development
- User Interface libraries, which include
- The (heavyweight, or native) Abstract Windowing Toolkit (AWT), which provides GUI components, the means for laying out those components and the means for handling events from those components
- The (lightweight) Swing libraries, which are built on AWT but provide for java (non-native) implementations of the AWT widgetry
- APIs for audio capture, processing, and playback
- The core libraries, which include:
- A platform dependent implementation of Java Virtual Machine (JVM) which is the means by which the byte codes of the Java libraries and 3rd party applications are executed.
- Plugins - which enable applets to be run in browsers
- Java Webstart - which allows java applications to be efficently distributed to End users across the internet
- Licensing and documentation