This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Apologies if this is not the correct forum, but I figured only advanced users may have an answer...
I installed J2SE 5.0 on my home PC 4-5 weeks ago. I installed it on my D: drive partition with my other applications. My relatively small C: drive partition is reserved for Windows stuff, even though many applications still install files there in 'C:\Program Files' without any intervention from me -- Sun's JDKs do this, they put huge files in the 'C:\Program Files\Common Files\Java' folder.
Anyway, yesterday, my C: drive filled up (on of the other applications was dumping large temp files there without me knowing!) and in an effort to clean up, I removed some of the J2SE 5.0 files that I thought were temporary, left over from the installation.
Later, after all was cleaned up, my instinct was to uninstall J2SE 5.0 and reinstall. The uninstaller complained it could not continue because it could not find a particular DLL (it didn't say which one). Basically, I couldn't uninstall using this uninstaller anymore, so I set out to manually cleanup.
I've removed the J2SE 5.0 folder from my D: drive. I removed the 'C:\Program Files\Common Files\Java' folder and all its subfolders. I also found an installation folder in 'C:\WINDOWS\Local Settings\Application Data'.
Finally, I removed *every* entry referring to J2SE and JDK from the Windows Registry. I only had J2SE 5.0 installed and there is no reference to any version of a JDK or J2SE in the registry.
In theory, my PC is completely clean of a JDK.
Then I ran the J2SE 5.0 install programme again -- and it eventually stops and says "You already have this version of the JDK installed."
WHAT? How can this be?, I ask!
Does anyone know of any other files and/or locations the JDK stores in? The installer must be finding a file to check to come up with its conclusion that I have J2SE 5.0 installed. As I said earlier, the Windows Registry has no references to it anymore.
Help! I can't install J2SE 5.0 again until I fix this!
Personally, I think this is a flaw in the installation program. It should allow one to install over anything that was left over from a previous install -- or a botched uninstall! :-(
It really is annoying how so many applications want to use C: You really have to work to keep the C drive clean. Anyway, I think I would search the directories on your PATH and look into any other environment settings that the installer might use. If that doesn't find anything, then searches of the whole system for java*.* might find something. Bill
I once had a similar problem. The solution was to clean the registry manually from data that was not obviously part of the jdk. The precise error messages and default values for user options / choosers of any kind (!) during the installation provided the relevant hints to the keys in the registry I had to remove. This included very long, cryptic key names.
I suggest to continue to try a manual uninstall. Focus on the registry. Investigate each mm^2 of all steps of the failing installation procedure, all options you have, all dialogs (including things like file choosers!) for any information that might help you.
Thank you to Bill (I love your Java Exam Cram books!) and Conan for your help and suggestions.
I finally fixed the problem and here's how:
1) ... and I'm not sure if this really helped, but certainly didn't hurt: I had still got the JDK1.5.0\bin folder in my PATH as set in autoexec.bat (on my Win98 system). So, I temporarily removed it until I had a successful install.
2) ... what I *really* think fixed it:
On the second day of trying to fix the problem, when I reran the installation programme when it got to "Configuring Windows Installer" I got the following error message:
"The configuration data for this product is corrupt. Contact your support personnel."
NOW WHAT?! So, after banging my head against the desk 50 times, I somehow guessed this was a more generic problem than anything to do with the JDK install. The error was coming from Windows Installer. I Googled for the error message. The following link gave me the best clue:
Analyze the MSI log file to find the errors that were encountered during the installation. The MSI log file can usually be found in the Temp directory. If the installation log file does not exist, then see the document How to create an installation log file when installing Norton AntiVirus Corporate Edition 7.5. Troubleshoot any errors that the installation log file reports.
"The following is an example of an MSI error log and the solution: MSI log entry: 'last line that generated an error' MSI (c) (1F:CB): Unexpected or missing value (name: 'PackageName', value: '') in key 'HKCU\Software\Microsoft\Installer\Products\74BE21DBFDBD3D11EBAE000ACC725290\SourceList'
1. Delete all instances of the string '74BE21DBFDBD3D11EBAE000ACC725290' from the registry. 2. Restart computer.
The "How to create an installation log file..." link gave me this information:
To create an installation log file, run Setup.exe with the following command-line parameters: