how many versions of java are there?

10,976

Solution 1

These are the most commonly used terms that correspond to your "Java versions":

  • JRE: Java runtime environment, what's needed to run Java programs
  • JDK: Java development kit, a JRE plus compiler and some additional tools
  • Jave SE: Standard Edition, the API library that comes with every JRE and JDK for desktop use
  • Jave EE: Enterprise Edition, additional APIs that extend the J2SE for business use, meaning mainly server applications - this includes JSPs
  • Jave ME: Mobile Edition, a set of APIs (mainly a subset of J2SE) for mobile devices like phones

(The latter three are often also written as J2SE, J2EE and J2ME meaning "Java 2 ___ Edition" - Sun's naming and versioning convention are rather confusing)

Note that all of these are basically specifications, and there are implementations from different vendors. For example, you can get a J2SE 6 JDK not only from Sun, but also from IBM and Oracle.

Solution 2

There's a few different ways of looking at this.

Firstly, the only current version of Java is Java 6 currently at Update 17 or so. Java 5 and earlier have all been end-of-lifed. What's a little confusing is that starting at version 1.2 Java adopted the name "Java 2" (and was referred to as J2SE or "Java 2 Standard Edition") so it was Java 2 version 1.2. After Java 2 version 1.4 (or more simply Java 1.4). Version 1.5 became Java 5 or J5SE although J2SE is still pretty common.

The other version of Java that's relevant is Java Enterprise Edition ("Java EE"), formerly J2EE ("Java 2 Enterprise Edition") with version 6 being imminent. Java EE specifies a set of standards for server apps. The most important part is the servlets specification, which is the basis for 99.9% of Java Web frameworks. It has versions and is currently at either version 2.5 or 2.6 (I forget). Apache Tomcat is the reference implementation of the servlets specification.

Another part is EJB ("Enterprise Java Beans") currently at EJB3/3.1. It's a component architecture and really heavyweight. It's not used anywhere near as often as the base servlets specification.

Whereas Tomcat is a Web container, full Java EE supports is provided by what's called an application server. Examples include Glassfish, JBoss, Weblogic and Websphere.

Java classes are often packaged as JARs ("Java ARchives"), which is simply a zipped file with a specified directory structure.

Web applications are packaged as wars ("Web ARchive"), which is just a jar with a different extension. WARs may contain libraries in JAR form.

Full Java EE apps are packaged into EARs ("Enterprise ARchives"), which again is just a different file extension and it may contain war and other files.

Now to complicate this there are about a bazillion Java Web frameworks such as Struts, Spring MVC, Tapestry, Wicket and many, many others.

Also, it's fairly common for Java Web and enterprise apps to use the Spring framework. Spring is (imho) a must-have for Java serverside development as it simplifies a lot of vendor and library differences and makes your application far more pluggable.

Confused yet?

Solution 3

There are several versions of the JDK (1.4, 5, 6), much like there are several versions of .NET (1.1, 2.0, 3.0, 3.5). J2SE and J2EE are really just different packagings of the same version. J2EE includes some extra namespaces that aren't in J2SE.

From wikipedia:

Java Platform, Enterprise Edition or Java EE is a widely used platform for server programming in the Java programming language. The Java platform (Enterprise Edition) differs from the Java Standard Edition Platform (Java SE) in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier Java software, based largely on modular components running on an application server.

Share:
10,976
mrblah
Author by

mrblah

test testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest testtest test asdf asdf

Updated on June 04, 2022

Comments

  • mrblah
    mrblah almost 2 years

    I am little confused about Java frameworks (I am coming from .NET). Do you need different server setups to run Java, J2EE and JSP? Does Java make a distinction in frameworks for enterprise and non-enterprise deployments? Beans? Struts?

    Can someone make sense of this for me?

    .NET has:

    1. Windows development (Winforms, WPF)
    2. web:
      i) webforms ii) mvc
  • Thomas Jung
    Thomas Jung over 14 years
    JEE, yes! Things become complicated with multiple vendors.
  • Thomas Jung
    Thomas Jung over 14 years
    Android could count as a "Java" version on its own. Or even GWT.
  • matbrgz
    matbrgz over 14 years
    JARs are zipped files with a specific directory structure and some optional meta information.
  • matbrgz
    matbrgz over 14 years
    Even Java 1.4 is supported if you either use Solaris or pay Sun money. java.sun.com/javase/support/javaforbusiness
  • Mobs
    Mobs over 14 years
    Also they prefer not to be called J2?? these days
  • Michael Borgwardt
    Michael Borgwardt over 14 years
    Right, though Sun's not even being entirely consistent on their main download page: developers.sun.com/downloads
  • Powerlord
    Powerlord over 14 years
    "Firstly, the only current version of Java is Java currently at Update 17" <-- I added a 6 to this to make it correct.
  • Powerlord
    Powerlord over 14 years
    Note that Apache Tomcat is just a servlet container. If you want a full implementation, see Apache Geronimo instead.
  • David
    David over 14 years
    Can Also add JavaFx, Sun's response to silverlight and flash/flex.
  • Michael Borgwardt
    Michael Borgwardt over 14 years
    JavaFX has its own language, so though it is a platform and runs on the JVM, it's not Java.