Issues Installing / Upgrading Java 7 (Update 21)
I've worked with automating deployments using SCCM for a few years now and love it. A week ago, I went through the usual steps to deploy the latest Java 7 Update 21. During testing, though, it didn't work.
When installing Java 7 Update 21, the installation status gets to about 80%, then hangs. A window appears in the background which says "There was a problem starting C:\Program Files (x86)\Java\jre7\bin\installer.dll. The specified module could not be found"
Since then, I have spent more time trying to get it to work than on anything else recently. I mean hours upon hours. I'm applying it to our company Gold Image (which currently has Java 7 Update 17 installed) and for testing have been using 4 Hyper-V VMs so that after a test, I can restore to checkpoint and test again in seconds. Below are some stats as well as
a list of what I've tried so far...
Stats
- Installing to Gold Image which is Windows 7 x64
- Windows is fully updated to this month
- Java 7 Update 17 previously installed
What I've Tried
- Uninstalling Java 7u17 first
- Rebooting after uninstall
- Cleaning registry of Java-related keys (numerous different key combinations)
- Java cleaning scripts (Example)
- Registry / File snapshot comparisons
- Copying Java 7 Update 21's installer.dll (with and without all other installed files) to destination before installation
- Above step + registering it with regsvr32 (fails)
- Redownloading installation package / files
- Creating MST files / Not using MST files
- Installing straight from EXE (Usually I extract the MSI from deployment)
- Trying different MSIEXEC installation string switches
- Adding logging switches to MSIEXEC string (logs didn't show anything helpful)
Searched Google for hours
- Countless combinations of the above
Nothing ever appears in the Event Logs. Sometimes I can get it to install using some of the above methods without an error and it is even listed in Add/Remove Programs. When I go to Java's site to "verify the version", though, it errors out.
I'm at my wit's end. Any suggestions?
Answers (10)
I realize you have gone to great lengths to clean up the old Java, but for testing purposes you could try the Java uninstall utility just to see if maybe it's stubborn residual files or registry entries tripping you up. There used to be a free tool out there called JavaRa that worked very well for cleaning up Java. I'm not sure if it still exists, though. Also, Oracle might have their own.
OK Guys - finally figured it out! Here's what I did...
1. Applied our standard Gold Image to a VM
2. Installed an OEM copy of Windows 7 x64 SP1 to a VM (plus all updates – did not install any applications or any version of Java)
3. Downloaded RegScanner (portable version) and did the below on each of the 2 vms
a. Opened RegScanner
b. Choose all HK sets (5 I think)
c. In search field just typed “java”
d. Saved/exported results as .reg files with name matching VM it came from
4. Used WinMerge to compare the two reg files (since they are text based)
5. Copied / pasted all differences between two into a single .reg file in NotePad++
6. Did a find/replace and replaced “[HKEY” with “[-HKEY]” (which tells the .reg file to remove the key not add it)
Even though it worked, I'm in process now of rebuilding Gold Image via SCCM OSD because above doesn't seem stable enough for me. Thanks for your help!
Beginner's stuff...
What's happening is that the installer is trying to register a DLL but can't because a dependent DLL isn't on the machine. Run ProcMon while the installation runs. You will be able to instantly identify the DLL which is missing. Remember to filter out stuff you're not interested in (explorer.exe, your a/v processes, etc,. etc.)
I have had issues deploying Java to live machines. I know you're on SCCM which is a platform I'm not very familiar with, but do you have the option of running this on startup? One of the things that bombed our Java installs for the longest time were the Java services running on the machine or a browser being open and using Java at the time of the software push. It would appear to be installed correctly from all appearances, but when you tried to navigate to a Java enabled page it wouldn't work. We started deploying software before the login screen loads and since then things have been awesome. I hope this helps.
I wrote a PowerShell script to auto-update Java. Initially it was written only to install and update, but after some testing I came across, among other things, the errors discussed in this thread.
I'm currently playing with the latest version as of 2013-11-25 (Java 7 Update 45), and consistently and reproducibly I get the installer.dll error when I install it multiple times silently. However, just clicking "ok" on the popup seems to work when uninstalling, and then reinstalling seems fine. This might not work for all scenarios discussed here.
To automate this "ok click" on the rundll32.exe installer.dll popup message, I wrote some convoluted logic and start the uninstall as a background job, wait for a while (configurable) and then simply kill rundll32.exe. It's quite hackish, but might just do the trick. It does in my test environment, at least. Make sure you read the full article to understand properly how it works.
The article about the script is here: http://www.powershelladmin.com/wiki/PowerShell_Java_Auto-Update_Script
Thanks for the suggestions guys...
This morning I tried out ProcMan (portable) but didn't see anything dedfinitive in the results. If anyone could be so kind as to review them, I'd really appreciate it! If so, below is the procedure I performed as well as the links... Thanks for your help guys!
- Reimaged a VM without our Gold Image (Win7x64 /w Java 7u17x32 installed)
- Started ProcMon Portable and filtered out a lot of stuff already being monitored except for DLL related
- Restarted capture log, then ran OEM Java 7u21 x32 MSI.
- The error appeared at 10:29:21 in the log. At 10:29:40, I clicked OK on the error which resumed the installation. I stopped the capture a few seconds after installation completed
Thanks Again!
-- Edit --
Just in case, I did the process all over again, but used the Procmon defaults for the filter instead. The error appears at about 10:41:41 on thisd log and I click OK on it at about 10:42:13. Thanks!
Logfile(UnfilteredPML).rar - 17.19mb
https://www.dropbox.com/s/1z603mfg9nqltph/Logfile%28UnfilteredPML%29.rar
Logfile(UnfilteredCSV).rar - 5.55mb
https://www.dropbox.com/s/1aimny7s7kqe3zt/Logfile%28UnfilteredCSV%29.rar
Logfile(UnfilteredXML).rar - 6.33mb
https://www.dropbox.com/s/rhx145fzmvh9el7/Logfile%28UnfilteredXML%29.rar
Thanks again!
Comments:
-
Has anyone tried the patch for 7.21 Java has issued? - Timanator 11 years ago