The JRE provides the libraries, Java virtual machine, and othercomponents necessary for you torun applets andapplications written in the Java programming language. This runtimeenvironment can be redistributed with applications to make themfree-standing.
The JDK includes the JRE plus command-line development toolssuch as compilers and debuggers that are necessary or useful fordeveloping applets and applications.
The Java Programming Language is a general-purpose, concurrent,strongly typed, class-based object-oriented language. It isnormally compiled to the bytecode instruction set and binary formatdefined in the Java Virtual Machine Specification. For moreinformation seeLanguageFeatures.
The Java virtual machine is an abstract computing machine thathas an instruction set and manipulates memory at run time. The Javavirtual machine is ported to different platforms to providehardware- and operating system-independence.
The Java Platform, Standard Edition provides two implementationsof the Java virtual machine (VM):
The client VM is an implementation for platforms typically usedfor client applications. The client VM is tuned for reducingstart-up time and memory footprint. It can be invoked by using the-client command-line option when launching anapplication.
The server VM is an implementation designed for maximum programexecution speed, trading off launch time and memory. It can beinvoked by using the-server command-line option whenlaunching an application.
For more information, see theVMdocumentation.
Classes and interfaces that provide basic features andfundamental functionality for the Java platform.
Provides the fundamentalObject andClassclasses, wrapper classes for primitive types, a basic math class,and more. See theLang and Utildocumentation for more information.
Math
Math functionality includes floating point libraries andarbitrary-precision math. For more information, see theMath documentation.
Monitoring and Management
Comprehensive monitoring and management support for Javaplatform including Monitoring and Management API for Java virtualmachine, Monitoring and Management API for the Logging Facility,jconsole and other monitoring utilities, out-of-the-box monitoringand management, Java Management Extensions (JMX), and Oracle'sPlatform Extension. See theMonitoring and Management documentationfor more information.
Package Version Identification
The package versioning feature enables package-level versioncontrol so that applications and applets can identify at runtimethe version of a specific Java Runtime Environment, VM, and classpackage. For more information, see thePackage Version Identificationdocumentation.
Reference Objects
Reference objects support a limited degree of interaction withthe garbage collector. A program may use a reference object tomaintain a reference to some other object in such a way that thelatter object may still be reclaimed by the collector. A programmay also arrange to be notified some time after the collector hasdetermined that the reachability of a given object has changed.Reference objects are therefore useful for building simple cachesas well as caches that are flushed when memory runs low, forimplementing mappings that do not prevent their keys (or values)from being reclaimed, and for scheduling pre-mortem cleanup actionsin a more flexible way than is possible with the Java finalizationmechanism. For more information, see theReference Objectsdocumentation.
Reflection
Reflection enables Java code to discover information about thefields, methods and constructors of loaded classes, and to usereflected fields, methods, and constructors to operate on theirunderlying counterparts on objects, within security restrictions.The API accommodates applications that need access to either thepublic members of a target object (based on its runtime class) orthe members declared by a given class. Programs can suppressdefault reflective access control. For more information, see theReflection documentation.
Collections Framework
Acollection is an object that represents a group ofobjects. The collections framework is a unified architecture forrepresenting collections, allowing them to be manipulatedindependently of the details of their representation. It reducesprogramming effort while increasing performance. It allows forinteroperability among unrelated APIs, reduces effort in designingand learning new APIs, and fosters software reuse. For moreinformation, see theCollectionsFramework documentation.
Concurrency Utilities
The Concurrency Utilities packages provide a powerful,extensible framework of high-performance threading utilities suchas thread pools and blocking queues. This package frees theprogrammer from the need to craft these utilities by hand, in muchthe same manner the Collections Framework did for data structures.Additionally, these packages provide low-level primitives foradvanced concurrent programming. For more information, See theConcurrency Utilitiesdocumentation.
Java Archive (JAR) Files
JAR (Java Archive) is a platform-independent file format thataggregates many files into one. Multiple Java applets and theirrequisite components (.class files, images and sounds) can bebundled in a JAR file and subsequently downloaded to a browser in asingle HTTP transaction, greatly improving the download speed. TheJAR format also supports compression, which reduces the file size,further improving the download time. In addition, the applet authorcan digitally sign individual entries in a JAR file to authenticatetheir origin. It is fully extensible. For more information, see theJava Archive documentation.
Logging
The Logging APIs facilitate software servicing and maintenanceat customer sites by producing log reports suitable for analysis byend users, system administrators, field service engineers, andsoftware development teams. The Logging APIs capture informationsuch as security failures, configuration errors, performancebottlenecks, and/or bugs in the application or platform. For moreinformation, see theLoggingdocumentation.
Preferences
The Preferences API provides a way for applications to store andretrieve user and system preference and configuration data. Thedata is stored persistently in an implementation-dependent backingstore. There are two separate trees of preference nodes, one foruser preferences and one for system preferences. For moreinformation, see thePreferencesAPI documentation,
I/O
Thejava.io andjava.nio packagesprovide a rich set of APIs for managing an application's I/O. Thefunctionality includes file and device I/O, object serialization,buffer management, and character-set support. Additionally, theAPIs support features for scalable servers including multiplexed,non-blocking I/O, memory mapping and locks for files. For moreinformation, see theI/Odocumentation.
Object Serialization
Object Serialization extends the core Java Input/Output classeswith support for objects. Object Serialization supports theencoding of objects, and the objects reachable from them, into astream of bytes; and it supports the complementary reconstructionof the object graph from the stream. Serialization is used forlightweight persistence and for communication via sockets or RemoteMethod Invocation (RMI). See theObject Serialization documentationfor more information.
Networking
Provides classes for networking functionality, includingaddressing, classes for using URLs and URIs, socket classes forconnecting to servers, networking security functionality, and more.See theNetworking documentation formore information.
Security
APIs for security-related functionality such as configurableaccess control, digital signing, authentication and authorization,cryptography, secure Internet communication, and more. See theSecurity documentation for moreinformation.
Internationalization
APIs that enable the development of internationalizedapplications. Internationalization is the process of designing anapplication so that it can be adapted to various languages andregions without engineering changes. See theInternationalization documentation for moreinformation.
JavaBeans™ Component API
Contains classes related to developing beans -- components basedon the JavaBeans™ architecture that can be pieced together aspart of developing an application. See theJavaBeans documentation for moreinformation.
Java Management Extensions (JMX)
The Java Management Extensions (JMX) API is a standard API formanagement and monitoring of resources such as applications,devices, services, and the Java virtual machine. Typical usesinclude consulting and changing application configuration,accumulating statistics about application behavior, and notifyingof state changes and erroneous conditions. The JMX API includesremote access, so a remote management program can interact with arunning application for these purposes. See theJava Management Extensions documentation formore information.
XML (JAXP)
The Java platform provides a rich set of APIs for processing XMLdocuments and data. See the Java SEXMLdocumentation for more information.
Java Native Interface (JNI)
Java Native Interface (JNI) is a standard programming interfacefor writing Java native methods and embedding the Java virtualmachine into native applications. The primary goal is binarycompatibility of native method libraries across all Java virtualmachine implementations on a given platform. See theJava Native Interface documentation for moreinformation.
Extension Mechanism
Optional packages are packages of Java classes (and anyassociated native code) that application developers can use toextend the functionality of the core platform. The extensionmechanism allows the Java virtual machine (VM) to use the classesof the optional extension in much the same way as the VM usesclasses in the Java Platform. The extension mechanism also providesa way for needed optional packages to be retrieved from specifiedURLs when they are not already installed in the JDK or RuntimeEnvironment. See theJava ExtensionMechanism documentation for more information.
Endorsed Standards Override Mechanism
An endorsed standard is a Java API defined through a standardsprocess other than the Java Community ProcessSM (JCP). Becauseendorsed standards are defined outside the JCP, it is anticipatedthat such standards may be revised between releases of the JavaPlatform. In order to take advantage of new revisions to endorsedstandards, developers and software vendors may use the EndorsedStandards Override Mechanism to provide newer versions of anendorsed standard than those included in the Java Platform asreleased by Oracle. See theEndorsed Standards Override Mechanismdocumentation for more information.
The JDBC™ API provides universal data access from the Javaprogramming language. Using the JDBC 3.0 API, you developers canwrite applications that can access virtually any data source, fromrelational databases to spreadsheets and flat files. JDBCtechnology also provides a common base on which tools and alternateinterfaces can be built. For more information, see theJDBC documentation.
Remote Method Invocation (RMI) enables the development ofdistributed applications by providing for remote communicationbetween programs written in the Java programming language. RMIenables an object running in one Java Virtual Machine to invokemethods on an object running in another Java VM, which may be on adifferent host. For more information, see the Java SERMI documentation.
Java IDL technology adds CORBA (Common Object Request BrokerArchitecture) capability to the Java platform, providingstandards-based interoperability and connectivity. Java IDL enablesdistributed Web-enabled Java applications to transparently invokeoperations on remote network services using the industry standardIDL (Object Management Group Interface Definition Language) andIIOP (Internet Inter-ORB Protocol) defined by the Object ManagementGroup. Runtime components include a Java ORB for distributedcomputing using IIOP communication. For more information, see theJava IDL documentation.
Java Remote Method Invocation over Internet Inter-ORB Protocoltechnology The RMI Programming Model enables the programming ofCORBA servers and applications via the RMI API. You can choose towork completely within the Java programming language using the JavaRemote Method Protocol (JRMP) as the transport, or work with otherCORBA-compliant programming languages using the Internet InterORBProtocol (IIOP). You use the rmic compiler to generate the codenecessary for connecting your applications via the InternetInterORB Protocol (IIOP) to others written in any CORBA-compliantlanguage. To work with CORBA applications in other languages, IDLcan be generated from Java programming language interfaces usingthe rmic compiler with the -idl option. To generate IIOP stubs andtie classes, use the rmic compiler with the -iiop option. For moreinformation, see theRMI-IIOPdocumentation.
Java SE 6 includes theJSR 223: Scripting for theJava™ Platform API. This is a framework by which JavaApplications can "host" script engines. Oracle's implementation ofJava SE 6 includes an example script engine based onMozilla Rhino:java_script forJava. The scripting framework supports third-party scriptengines through jar "service discovery" mechanism. It is possibleto "drop" any JSR-223 compliant script engine in the CLASSPATH andaccess the same from your Java applications For more information,see theScriptingdocumentation.
The Java Naming and Directory Interface™ (JNDI) providesnaming and directory functionality to applications written in theJava programming language. It is designed to be independent of anyspecific naming or directory service implementation. Thus a varietyof services--new, emerging, and already deployed ones--can beaccessed in a common way. The JNDI architecture consists of a APIand an SPI (Service Provider Interface). Java applications use thisAPI to access a variety of naming and directory services. The SPIenables a variety of naming and directory services to be plugged intransparently, allowing the Java application using the JNDI API toaccess their services. For more information, seeJNDI documentation.
The input method framework enables the collaboration betweentext editing components and input methods in entering text. Inputmethods are software components that let the user enter text inways other than simple typing on a keyboard. They are commonly usedto enter Japanese, Chinese, or Korean -- languages using thousandsof different characters - on keyboards with far fewer keys.However, the framework also supports input methods for otherlanguages and the use of entirely different input mechanisms, suchas handwriting or speech recognition. For more information, see theInput Method Frameworkdocumentation.
With the Java Accessibility API, developers can easily createJava applications that are accessible to disabled persons.Accessible Java applications are compatible with assistivetechnologies such as screen readers, speech recognition systems,and refreshable braille displays. For more information, see theAccessibility documentation.
The Java™ Print Service API, allows printing on all Javaplatforms including those requiring a small footprint, such as aJava ME profile. For more information, seeJava Print Service documentation.
The Java platform includes a powerful API for capturing,processing, and playing back audio and MIDI (Musical InstrumentDigital Interface) data. This API is supported by an efficientsound engine which guarantees high-quality audio mixing and MIDIsynthesis capabilities for the platform. For more information, seeJava Sound documentation.
Drag and Drop enables data transfer both across Java programminglanguage and native applications, between Java programming languageapplications, and within a single Java programming languageapplication. For more information, seeDrag and Drop Transfer.
The Java Image I/O API provides a pluggable architecture forworking with images stored in files and accessed across thenetwork. The API provides a framework for the addition offormat-specific plugins. Plug-ins for several common formats areincluded with Java Image I/O, but third parties can use this API tocreate their own plugins to handle special formats. For moreinformation, seeImage I/O.
The Java 2D™ API is a set of classes for advanced 2Dgraphics and imaging. It encompasses line art, text, and images ina single comprehensive model. The API provides extensive supportfor image compositing and alpha channel images, a set of classes toprovide accurate color space definition and conversion, and a richset of display-oriented imaging operators. For more information,see theJava 2D documentation.
The Java™ platform's Abstract Windowing Toolkit (AWT)provides APIs for constructing user interface components such asmenus, buttons, text fields, dialog boxes, checkboxes, and forhandling user input through those components. In addition, AWTallows for rendering of simple shapes such as ovals and polygonsand enables developers to control the user-interface layout andfonts used by their applications. For more information, see theAWT documentation.
The Swing APIs also provide graphical component (GUI) for use inuser interfaces. The Swing APIs are written in the Java programminglanguage without any reliance on code that is specific to the GUIfacilities provided by underlying operating system. This allows theSwing GUI components to have a "pluggable" look-and-feel that canbe switched while an application is running. For more information,see the Java SESwingdocumentation.
Java SE 7 Update 2 and later includes the JavaFX SDK. The JavaFX platform is the evolution of the Java client platform designed to enable application developers to easily create and deploy rich internet applications (RIAs) that behave consistently across multiple platforms. SeeJavaFX Release Documents for more information.
Installation, setup, updating, redistribution and relatedtopics:
For more information, seeGeneral Deployment,Java Plug-in, andJava Web Start.
Architecture and specifications for use by debuggers indevelopment environments. For more information, see theJava Platform Debugger Architecture (JPDA)documentation.
The Java Virtual Machine Tool Interface (JVM TI) is aspecification for inspecting the state and controlling theexecution of applications running in the JVM. The Java VirtualMachine Profiler Interface (JVMPI) has been deprecated. For moreinformation, see theJava VirtualMachine Tool Interface (JVM TI) documentation.
Javadoc is a tool that parses the declarations and documentationcomments source files to produce a set of HTML pages describing theprogram elements. The Doclet API provides a mechanism for clientsto inspect the source-level structure of programs and libraries,including Javadoc comments embedded in the source. This API can beused by doclets to generate documentation. For more information,see theJavadoc documentation.
The apt tool is a command-line utility for annotationprocessing. It includes a set of reflective APIs and supportinginfrastructure to process program annotations. These reflectiveAPIs provide a build-time, source-based, read-only view of programstructure. They are designed to cleanly model the Java programminglanguage's type system after the addition of generics. For moreinformation, see theaptdocumentation.
The package com.sun.tools.attach contains an Oracleextension to the Java Platform that allows an application to attachto a running Java virtual machine. Once the attach has been made, atool agent can be started in the target virtual machine. For moreinformation, see theattachdocumentation.
The package com.sun.tools.jconsole contains an Oracleextension to the Java Platform that provides a programmaticinterface to access JConsole. For more information, seeUsing JConsole.
Documentation for the tools and utilities included in the JDK.Covers basic tools (javac, java, javadoc, apt, appletviewer, jar,jdb, javah, javap, extcheck), security tools, internationalizationtools, RMI tools, IDL and RMI-IIOP tools, deployment tools, JavaPlug-in tools, and Java Web Start tools, monitoring and managementtools, and troubleshooting tools. For more information, see theJDK Tools and Utilitiesdocumentation.
Oracle provides implementations of the JDK and Java RuntimeEnvironment for Microsoft Windows, Linux, and the Solaris operatingsystems. SeeSystem Configurations for information about which versions ofthese platforms are supported.
Other companies may provide implementations of the Java platformfor other operating systems such as Macintosh, AIX, etc.