Background
Google Chrome prevents Java from automatically running when it detects that the version you currently have installed is not the most recent. I finally got tired of the nagging and decided to upgrade to 7u4 (from 6u29). I downloaded the offline version and proceeded to install it, but it kept failing with some sort of error and directing me to a help page on the Java website. I head on over to Programs and Features and attempted to uninstall all old versions, but the x86 version refused to uninstall (both x86 and x64 Java are installed). I then attempted to manually remove Java using DK Finder and regscanner (by NirSoft). I deleted every trace of Java I could possibly find. I even installed Java in a virtual machine and monitored the installation with Regshot 2.0 unicode to make sure I had all the correct registry keys deleted, but even that did not help.
Process
- Visit http://support.microsoft.com/kb/223300 and download/run the fixit tool that enables Windows Installer Logging
- Attempt to install Java again
- After it fails, put %temp% in the run box to bring you to the Temporary Files folder
- Switch to details view and sort by Date Modified/Descending (this will put the most recent files at the top)
- There should be a jusched.log and a MSI(random text).log
- Open the MSI log file and search for “return value 3”
- Find the last “return value 3” entry
In my case the line reads
Action ended 22:38:28: SetupCompleteError. Return value 2.
Action ended 22:38:28: INSTALL. Return value 3.
- This basically just indicates that setup encountered an error and the install won’t finish
- The error before it reads:
Action ended 22:38:20: RemoveExistingProducts. Return value 3.
Action ended 22:38:20: INSTALL. Return value 3.
- This is the helpful one. We can see that the installer is stopping when it’s trying to execute the RemoveExisitingProducts sequence
- To fix this, I downloaded SuperOrca and opened the MSI installer file located at %APPDATA%\\..\\LocalLow\\Java\\jre(version)\\jre(version).msi
- The above file should be extracted and left by the installer downloaded from the Java site after it’s been used at least once
- With the file open, I selected InstallExecuteSequence in the left pane and located RemoveExistingProducts
- I deleted the entry using the Drop Row command from the right-click menu
- I then saved it with a new name and executed it
Resources
Conclusion
I’m still not exactly sure how the problem got started in the first place, but it seems Java attempted to add a feature to remove previous versions that ended up breaking the installation for some reason. If you’re having problems with Java installation first try Programs and Features (Add/Remove Programs). Next, give JavaRa a try. If all else fails, you can give the above method a shot and hopefully get Java up and running without a reformat.