We have been dealing with this problem using Windows 7 Pro SP1 with every Java update after v7 u11. Unfortunately, Vincent's solution does not apply when attempting to deploy this via Group Policy to hundreds of computers... And the change that Semiproslacker posted did not resolve our problem either. Here is what I have come across while dealing with this:
- The Problem - The group policy fails to install the new software, and hangs up on the startup screen while trying to install - requiring a hard reboot to move on. When trying to manually uninstall the previous version, an error message pops up stating "There was a problem starting c:\program files(x86)\java\jre7\bin\installer.dll." Notice the double \ which I believe is causing the problem. Unfortunately, a search in the registry does not turn up this value. Once this error message is cleared, the software does uninstall... but this has continued to happen for every new update on all computers that have been afflicted with this problem - making Group Policy installation impossible and manual installations very time consuming.
- The Solution (kind of) - I have found that by deleting a certain registry key, this problem can be avoided and the Group Policy will install as normal. If anybody is intersted, this is what I did:
- Find the registry key under HKEY_CLASSES_ROOT\Installer\Products that has the old version of Java you wish to uninstall
- Create a batch file to delete this registry key (my command looks like this: reg delete HKEY_CLASSES_ROOT\Installer\Products\4EA42A62D9304AC4784BF238120771FF /f)
- Create a group policy to run this batch file at both shutdown and at startup (to ensure it is removed before the installation tries to apply)
- Create a group policy to install the new Java version, with the previously mentioned registry key having been deleted it should now install without any problem
Applying both group policies together did the trick for us. However, deleting this registry key does not delete everything of the old version because when you do a "Verify Java Version" on the Java website, it detects that the old version is still on the computer in addition to the new one. So far I have been unable to find out exactly where it is detecting the old version, but at this point it is just a nuisance and isn't really hurting anything. If I figure out how to remove the remnants of the old version, I will post it here. If anybody out there reading this knows, please save the rest of us some time and headache and post it.