Java is a platform-independent programming language developed by Sun. In order for this to work, there is a thing called the Java Runtime Environment (JRE) which includes the Java Virtual Machine (JVM). There is a different JRE for every operating system, and they give a consistent platform for Java applications to run on. Now, Microsoft (being Microsoft) decided that they didn't like somebody else having a nice platform-independent system like that and made their own JRE that was (surprise surprise) partially incompatible with Java - this was to undermine Sun who is a big competitor. The Microsoft JRE is unreliable and is known to have *many* problems, which is why it's best to use the Sun JRE. This can be downloaded from
http://java.sun.com
and to save you the hassle, here's a direct link (just select the version of the JRE that you want to get - probably the 2nd one down) :
http://java.sun.com/j2se/1.4.1/download.html