vagaries on java varieties

Bryan Sant bryan.sant at
Thu Apr 24 10:44:56 MDT 2008

On Thu, Apr 24, 2008 at 9:39 AM, Levi Pearson <levi at> wrote:
>  At work, we have to use several crappy Java programs (not Java's
>  fault, of course), and several of them are very particular about their
>  Java versions.  Having to have several versions of the JRE installed
>  kind of sucks, but at least some of the blame probably lies with the
>  programmers of said crappy applications.

The committee that directs the Java specification (the JCP), has
painstakingly tried to maintain backwards compatibility with each new
release of Java.  An app written for Java 1.2 should run fine on Java
6.  However, there have been a few times where they've broken the
rules and caused incompatibilities between old classes or the way the
JRE works for the good of the platform as a whole moving forward.
Java 5 broke some minor things, and Java 6 broke some more.  Here is a
comprehensive list of the incompatibilities between releases:

In the vast majority of cases, you should be able to just run your old
Java app on the newer JRE.  However, many app vendors claim that their
product will only run on Java version such-and-such, when in fact it
will run on the newer JRE perfectly.

Contrast this with .NET which has major incompatibilities between
releases and has even broken some things with service pack updates.

The apps that you're talking about on your box may actually be
depending on some of these odd-ball things in the older JRE's and
really does depend on an old version, but I doubt it.

And for the record, the new Java 6u10 release is supposed to
transparently handle the management of multiple JREs installed on the
system at one time.  So if I write an app and declare that it depends
on Java 6u11, the old JRE will know that it needs to install the
kernel of the new JRE to run my app (as well as get older versions
that aren't installed).


More information about the PLUG mailing list