You've got your Java update package all downloaded, and you're about ready to send it out to all your happy little boxes. But, wait! You feel some (justified) suspicion toward all things Java and open the package. There are three JRE install packages in there.

  • x86
  • x64
  • x86 for x64 systems

 

(Justified) suspicion has just upgraded to low grade paranoia. Thank you, Java.

 

Why does Java have three installers for two architectures?

 

The x86 and x64 packages are self-explanatory, but what is this x84 for x64 systems?

 

Java seems to have some intermittent problems with installing or updating the 32-bit version on a 64-bit system. For the Java 7u10 update package, it looks like Java is uninstalling earlier versions of JRE7, and then doing some gyrations to install the 32-bit version.

 

To uninstall JRE7, Java closes all the open handlers and then runs an uninstaller MSI for 32-bit Java. Then it runs some interesting batch files. The first one renames %systemroot\system32\config\systemprofile to %systemroot%\syswow64\config\systemprofile. Java then applies the package and runs another batch file to revert the systemprofile path.

 

Long story short, Java doesn't seem to natively support updating or installing 32-bit Java on 64-bit systems (or that support is broken on 7u10). That last package is their method of providing that support in a vaguely seamless way.