Solved

Issues Installing / Upgrading Java 7 (Update 21)

Posted on 2013-05-09
8
2,309 Views
Last Modified: 2013-07-09
Hey All -

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"
Error MSG
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?
0
Comment
Question by:BzowK
8 Comments
 
LVL 14

Expert Comment

by:shahzoor
ID: 39154329
uninstall it completely using Revo Uninstaller and remove its entries from the registry completely
Reboot and install again
0
 
LVL 10

Expert Comment

by:CSI-Windows_com
ID: 39155106
The screen shot show TWO slashes between the file and the path.

Maybe you have a legitimate case of a malfunction of the installer in your run conditions.

You never mentioned if this is the 32-bit or 64-bit edition.

SCCM agent is usually deployed as 32-bit and therefore starts everything as 32-bit by default.

It is possible that the 64-bit java installer is not correctly built and get's redirected to the 32-bit Program Files (x86) when making a custom action call to this DLL.

Here are some things to try:

Thing 1 (assuming you are on 64-bit):
Manually run the installer you are using from both a 32-bit cmd prompt (c:\windows\syswow64\cmd.exe) and a 64-bit (cmd.exe) - figure out if you get the same results.  If it works properly from a 64-bit command prompt, then I have code that can help force your script to process as 64-bit even when started by 32-bit SCCM agents.

Thing 2:
Make sure you install 32-bit first, then 64-bit installers if doing both.

Thing 3:
Have you tried Java 7, update 20 to see if you get the same results?

Thing 4 (assumes the double backslash does not matter - might just be bad screen output):
Extract the entire .MSI using abc.msi /a.
Acquire a copy of the installer.dll
During install, manually place it on the above path before running the Java installer.

Thing 5:
Run a procmon trace and see what is actually happening during install - the error may be a red herring - in otherwords it may be something else that makes the installer *think* it can't find the dll.
0
 

Author Comment

by:BzowK
ID: 39155873
OK - thanks for the suggestions.  Here are my answers...

You never mentioned if this is the 32-bit or 64-bit edition
It's the x32 Offline Installer of Java 7 Update 21 but being installed on Windows 7 x64.  I don't install the x64 of Java anymore since we don't have any apps that use it and it would just be a security risk

Have you tried Java 7, update 20 to see if you get the same results?
Yes - The image has u17 on it, but on our image have sent out deployment packages for each released version up to u20 for every release.  Just need to update the version on our image.

Extract the entire .MSI using abc.msi /a.
Acquire a copy of the installer.dll
During install, manually place it on the above path before running the Java installer.
I've already tried that using a installer.dll from a Java 7 Update 21 I got to somewhat install.  Never could get files using /a with this MSI.  Even set up a task sequence in SCCM to copy the file before install.  Java installed, but when I go to Verify Java on Oracle's site, it errored out

Run a procmon trace and see what is actually happening during install - the error may be a red herring - in otherwords it may be something else that makes the installer *think* it can't find the dll.
Working on that now

One thing I did do was attempt to install the MSI using all of msiexec's logging options.  Attached is the log file it created...JavaLog.txt
0
 
LVL 10

Expert Comment

by:CSI-Windows_com
ID: 39156353
If that fails, Rohitab API monitor might be able to reveal more details about the call to RunDLL.

http://www.rohitab.com/apimonitor
0
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 

Author Comment

by:BzowK
ID: 39156657
OK...

Thank you again for your higher level suggestions.  I've tried a few things, but am not really sure how to interpret them.  

I downloaded the portable version of API Monitor v2 x64.  I restored a VM with our Gold Image on it to what it should be right after imaging (Windows 7 SP1 x64 + Jav 7 Update 17 installed)  I started monitoring, then double clicked to open jre1.7.0_21.msi (extracted from exe but untouched).  I not only captured the data, but manually logged each window that appeared asking if I wanted to monitor a process.  

A list of the procedure (in order) including processes I accepted to have monitored during installation are below. The whole process took about 3-4 minutes due to me logging everything as it happened.

1. Downloaded / Copied portable install of API to VM's desktop.  Started app with no other apps running (except background ones).  Capture seemed to start upon app start.
2.  Double clicked jre1.7.0_21.msi to start installation
3. Prompted & accepting monitoring of "Windows Installer - jre1.7.0_21"
4. Prompted & accepting monitoring of "WMI Provider Host"
5. Prompted & accepting monitoring of "msiexec"
6. Java Installation Welcome Screen was displayed - clicked Install
7. Prompted & accepting monitoring of "Monitor MS Volume Shadow Copy"
8. Prompted & accepting monitoring of "Host Process for Windows"
9. Prompted & accepting monitoring of "MS Windows search filter host"
10. Prompted & accepting monitoring of "MS Malware Protection Command Line Utility"
11. Prompted & accepting monitoring of "Driver Installation Module"
12. Prompted & accepting monitoring of "Windows host proicess Rundll32
Monitor RunDll3213. Prompted & accepting monitoring of "Rundll32"
Exact same as above
14. Prompted & accepting monitoring of "Update Trusted Sites"
15. The Java Error Pop-up appears minimized.  I restore it and click OK - installation continues
Java Error16. Prompted & accepting monitoring of "Host processes for Windows Services"
17. Prompted & accepting monitoring of "Windows problem reporting"
18. Installation complete

At this point I saved the capture into the attached capture file.  I could only upload a txt file so please rename it's extension to .apmx64 Java-7-Update-21-Capture.txt

If you wouldn't mind taking a quick look to see what you think, I'd really appreciate it - Thanks!
0
 
LVL 10

Accepted Solution

by:
CSI-Windows_com earned 500 total points
ID: 39156792
This is awesome - I didn't know the latest version finally allowed saving traces!

Unfortunately I am not seeing any "calls" in any of the data you sent me.

Here are some thoughts:
*) Only monitor msiexec.exe and the installer.exe
*) Use display filters to knock out calls you see 1,000,000 times - like all the heap calls*) Search the call records for the message in the error dialog box (e.g. "The specified module cannot be found") - most times it will be in clear text as a parameter to a Windows API.
*) Your error should be sometime "shortly" before that.  Shortly can be a lot of records.
0
 
LVL 1

Expert Comment

by:JTOCCO
ID: 39189012
Did anyone find a resolution to this issue?
0
 

Expert Comment

by:A-Sec
ID: 39309619
Im having the exact same problem updating some of the latter java-installations.
All tho some are fine and some arent - I think it depends on the machine it is being installed on.
For example - I can deploy the new java to "clean" machines but not machines which an older java on it. When I try updating I mostly get the same installer.dll-error but not on all of my machines.

For example I can update alot of Windows Server 2008 without any problems, all of them are 64bit.

Best regards Niklas.
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
When you start your Windows 10 PC and got an "Operating system not found" error or just saw  "Auto repair for startup". After a while, you have entered a loop for Auto repair which does not fix anything and you will be in a  panic as all your work w…
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now