Jun 102012
 

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

  1. Visit http://support.microsoft.com/kb/223300 and download/run the fixit tool that enables Windows Installer Logging
  2. Attempt to install Java again
  3. After it fails, put %temp% in the run box to bring you to the Temporary Files folder
  4. Switch to details view and sort by Date Modified/Descending (this will put the most recent files at the top)
  5. There should be a jusched.log and a MSI(random text).log
  6. Open the MSI log file and search for “return value 3”
  7. 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.
  8. This basically just indicates that setup encountered an error and the install won’t finish
  9. The error before it reads:
    Action ended 22:38:20: RemoveExistingProducts. Return value 3.
    Action ended 22:38:20: INSTALL. Return value 3.
  10. This is the helpful one. We can see that the installer is stopping when it’s trying to execute the RemoveExisitingProducts sequence
  11. To fix this, I downloaded SuperOrca and opened the MSI installer file located at %APPDATA%\\..\\LocalLow\\Java\\jre(version)\\jre(version).msi
  12. The above file should be extracted and left by the installer downloaded from the Java site after it’s been used at least once
  13. With the file open, I selected InstallExecuteSequence in the left pane and located RemoveExistingProducts
  14. I deleted the entry using the Drop Row command from the right-click menu
  15. 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.

Jul 262009
 

After installing a fresh version of Windows 7, I went to update the drivers and check device manager. None of my drivers downloaded from the manufacturer’s site would install, just the included utilities. ATI CCC would launch, but the main window wouldn’t display. After a bit of Googling, I found out Windows 7 was installing it’s own drivers. I went to device manager and expanded Display Adapters and sure enough, both (2 video cards installed) had Microsoft in parenthesis after them. I hit uninstall and removed them, scanned for new hardware changes, and as soon as I did, Windows reinstalled them. I tryed uninstalling them and using the ATI installer, right before it completed, Windows put its own back in. I checked in Process Explorer to see id I could end Windows driver installer, and sure enough, it kept launching as soon as a driver was uninstalled. I made a simple batch file that continually ended drvinst.exe and that fixed held back Windows long enough to get the right drivers installed.

The Process:

Computer Management > Device Manager
Launch no_driver.bat
Uninstall Windows Drivers
Scan for changes
Right click the device that shows up without drivers (with /!\ on it)
Browse my computer
Point to the location of your driver (You’ll need to extract the Windows 7 drivers to a folder. ATI will extract all the files to C:\ATI and then start the installer [exit the installer if CCC and utilities are already installed)
Exit out of no_driver.bat
Windows will install the “real” drivers
Restart and everything should be working well.

How to Tell if it’s a Windows Driver:

Windows drivers normally have something in parenthesis after the name of the device. To double check, open properties and go to the Driver tab. Now can tell if it’s Windows when the “Driver Provider” is “Microsoft”

Why you don’t want Windows Drivers:

The drivers, being Windows own, don’t work with manufacturer’s utilities. This prevents modifications, and most importantly, features like Crossfire. Even ATI Tray Tools needs ATI’s real drivers.

Why Windows Installs its own Drivers:

Windows installs these for novices users that don’t understand how to install them manually. In addition they are most likely trying to prevent users from complaining about their old hardware not being supported.

What if Windows can’t find drivers, and there are Vista drivers I want to use?

Make sure you have the driver extracted in a folder (the INF, sys and cat file and others would indicate the folder with the driver). Download a tool called DSEO. This tool puts Windows into test mode (which was designed to test driver signing) allowing you to use unsigned drivers (ATITool or ATI Tray Tools) and drivers for Vista. Launch the tool and select the first option “Enable Test Mode.” Hit next until you reach the menu again. When you reboot, the watermark in the bottom right will be back, you can disable this now. If you have a driver you need to sign, you can use that option (such as ATITool and ATI Tray Tools). Exit when finished and restart. You can now use Vista drivers (although you can’t right click and select install). You’ll have to install them through device manager, meaning you may have to use the above procedure to remove Windows own drivers.

no_driver.bat contains:

echo off
cls
:loop
taskkill /im drvinst.exe /f
goto loop