When I go to download the Sun JDK, I see there’s an Enterprise Edition, and a Developer Edition, as well as a Standard Edition. What are thedifferences between all of these editions?
Sun has reorganized the Java Platform into 3 distinct editions: Java 2 Standard Edition, Java 2 Enterprise Edition, and Java 2 MicroEdition. There is no developer edition, per se, but you are probablyreferring to the different Java Runtime Environment (JRE) and JavaSoftware Development Kit (Java SDK) editions.
The JRE is provided for distribution with applications that will work out of the boxwithout requiring an end-user to download a JVM. Therefore the JREdoes not include a compiler or other development software. The JavaSDK is intended for use by developers and provides all the necessarycompilers, libraries, and other software required to develop Javaapplications. There is also a Source Edition of the Java 2 SDK, whichis intended for developers. It isn’t really a separate branch of theJava Platform; it simply contains the source code for the Java 2 SDK.
As its name suggests, Java 2 Standard Edition is the standard Javaplatform. It includes all the necessary runtimes and APIs fordeveloping most enterprise desktop and server applications. However,it does not include some key APIs such as the Servlet and JSP APIs.These APIs can always be added on top of the Standard Edition, but arenot included by default. Java 2 Enterprise Edition adds APIs focusedspecifically on the development of server-side enterprise applications., including Enterprise JavaBeans, Servlets, JSP, JNDI, JavaMail, and RMI-IIOP.
The Enterprise Edition SDK ships with a version of the HotSpot JIT optimized for the server. A client version of HotSpot ships with the Standard Edition 1.3 SDK.
The Micro Edition of the Java 2 Platform strips down Java to run on smallconsumer devices, ranging from smart cards and cell phones to set-topboxes. Consumer devices do not have the storage capacity orprocessing power to accommodate the other editions of the Java 2Platform. They also do not require the functionality provided by manyof the extra APIs.
The existence of different editions and an SDKfor each edition can also lead to confusion. It helps to rememberthat the various Java editions comprise different specifications, andthat the SDKs are reference implementations of those specifications.