JAVA 6 Installation Issues
I'm in the process of upgrading people from JAVA 1.6.0_18 to 1.6.0_20 and experiencing installation issues via SMS 2003.
The installation appears to have been successful within SMS, but if you navigate to C:\Program Files\Java\jre6\ almost all the files are gone. The bin and lib folders are pretty much empty. Add/Remove shows that it's an item that can be uninstalled. Registry has an entry that can be uninstalled. SMS and Application Event Logs show that the install was successful. Appears a fix for this is to uninstall and reinstall the application.
Only issue, I'm doing this via SMS, so I can't just stop what I'm doing to take care of 1 issue. I'm upgrading 1000+ users, and I don't know who else may be experiencing this.
Here is my command-line for the installation: \\smsshare\jre-6u20-windows-i586-s.exe /s AgreeToLicense=YES IEXPLORER=1 MOZILLA=1 REBOOT=Suppress JAVAUPDATE=0
In the past, I had a manual script that did:
taskkill.exe /f /im iexplore.exe
taskkill.exe /f /im firefox.exe
taskkill.exe /f /im jqs.exe
taskkill.exe /f /im jusched.exe
GOTO UNINSTALL
:UNINSTaLL
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216019FF} /qn REBOOT=Suppress
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216018FF} /qn REBOOT=Suppress
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216011FF} /qn REBOOT=Suppress
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216016F0} /qn REBOOT=Suppress
MsiExec.exe /X{3248F0A8-6813-11D6-A77B-00B0D0160070} /qn REBOOT=Suppress
MsiExec.exe /X{3248F0A8-6813-11D6-A77B-00B0D0160060} /qn REBOOT=Suppress
MsiExec.exe /X{3248F0A8-6813-11D6-A77B-00B0D0160050} /qn REBOOT=Suppress
MsiExec.exe /X{3248F0A8-6813-11D6-A77B-00B0D0160030} /qn REBOOT=Suppress
MsiExec.exe /X{3248F0A8-6813-11D6-A77B-00B0D0160020} /qn REBOOT=Suppress
MsiExec.exe /X{7148F0A8-6813-11D6-A77B-00B0D0142150} /qn REBOOT=Suppress
GOTO INSTALL
:INSTALL
\\smsshare\JAVA6_u20\jre-6u20-windows-i586-s.exe /s AgreeToLicense=YES IEXPLORER=1 MOZILLA=1 REBOOT=Suppress JAVAUPDATE=0
GOTO END
:END
Thoughts??
Answers (46)
I read up on the instructions, but never had this issue before. All my past installations worked fine. What seems to be happening, the JAVA install kicks off, but sometime during it, looks like it just stops, and reports back as success.
Comments:
-
I have the exact same behaviour - in SMS are you calling a batch file or specifying the commandline within the program? - Xenman 11 years ago
c:\program files\java\jre6\ has the following:
bin folder
lib folder
core.zip (the contents of the java6-20 file)
patchjre.exe
zipper.exe
So it seems that the install is trying to kick off, but then just stops. Thoughts?
- Locate the extracted MSI. It'll either be in the %TEMP% folder or in a new folder somewhere beneath %AppData%.
- Copy the MSI somewhere safe, renaming it along the way to something sensible.
- Use this MSI to install. Use the 'verbose log' switch to produce a log of the install's progress:
MSIExec /i [path to and name of MSI] /l*v %temp%\jre-6u20.log
The log should tell you what the problem is. Search for the text 'Return value 3'. Somewhere in the dozen or so lines above and below that text will be log entries detailing what failed.
Now...how I can I do the opposite? How can I check for machines that DON'T have java.exe within program files\java\jre6\bin ?
I tried to do:
Software Files.File Name is not equal to "java.exe"
and
Software Files.FilePath is equal to "c:\program files\java\jre6\bin"
Results were all over the place. I checked a bunch of them, and they all had Java installed properly.
I was just able to duplicate the issue on my test workstation. Pushed the following to my machine via SMS
MsiExec.exe /i jre1.6.0_20.msi /qn /l*v c:\j-6u20.log
Read the log, and I'm not sure what to be looking for since the log shows that the installation was successful. I can post up the log...but it's 570kb worth of plain text, so that's quite a bit.
SMS and Event log shows successful installation.
Go into Program Files\Java\jre6\
\bin
\lib
core.zip (33mb)
patchjre.exe (0kb)
zipper.exe (64kb)
Looks like it was in the middle of installing, when it came down to extracting, it failed out, and just spit out Successful.
Reviewing the log...I'm seeing a bunch of -2147287038 errors. That usually means MSI is looking for a file, but can't find it. Is it looking for the MST file? It's in the same folder as the rest of the setup files.
jre1.6.0_20.msi (568kb)
Data1.cab (12693kb)
lzma.dll
gtapi.dll
sp1033.mst (4877kb)
Do I need to call for the MST within the command-line? And still though, the installation is not failing on all, just random. But it's hard for me to find out why since it's happening on random machines, but all reporting successful.
And no, the engine won't look for it/them unless you specify it/them in the command line using the TRANSFORMS property.
If ProcMon isn't picking up anything wrong, then I'd stick my neck out and say that Update 20 is bad on certain machines. Do other JREs install OK on those?
Java 6_18 was pretty much a good 80-90% successful rate. Only issues I was having was error 1618. That's fine, I'll just send a remote reboot and try again.
Java 6_20, SMS is reporting back high successful rate, but the more I dig into it...seems that my success rate may only be about 50-60%. Not sure what it is.
Case 1, machines have different versions of 1.6.0_x. Installs fine...or breaks.
Case 2, machines have 1.6.0_18, installing _20. Installs fine...o breaks.
My problem is that if it fails...everything reports back as successful. So here I am thinking it was a good deployment. Reality, their Java is broken now.
Now, here's how I can almost duplicate it. If they have update 20, and I push update 20 again, it'll break. After it breaks, and I try again...MAY break. Try it one more time, it will be successful. No clue why this is. So I thought, alright, skip SMS, let's try to push it out via AD. Exact same issue. Re-download the update again from another computer, extract MSI, and use those files....same issue.
had a simular thing while pushing java via GPO from 6.11 to 6.20
to me it looked like the .20 installer waited for an event ( which was the termination of the jqs.exe service) which actually never happened.
so all the (test)clients where waiting while starting up showing "installing java 6 update 20" but they never came over that point.
all i had was a deinstalled 6.11 with no more java.
stopping that "java quick starter" service did the magic for me
bye,
b
I've tried it...but was getting mixed results as well. May need to try again.
http://itninja.com/question/stopping-a-service09&mpage=1&key=uninstall%2Cjava
In that thread, I was complaining that I couldn't get the script to work...that's because one of our GPOs was disabling the use of VB scripting. So I had to include "regsvr32 scrrun.dll" to re-enable that, then running the script. My only issue with that script...I have no clue if it's doing anything since it only reports back a 0 or 1.
some time ago, i have posted a recipe for disabling the JQS service.
See: http://www.appdeploy.com/messageboards/fb.asp?m=45917
Regards, Nick
I don't know if this is related or not, but: in previous 1.6 versions, several of my users reported the "all the files are gone" behavior, only to discover that the files reappeared after rebooting. In other words, most of the installation was being initiated after the reboot. We never did identify the "run once" initiator. Sande
However, what has been happening is if the machine is already at 6u20 the .msi installer goes and deletes a bunch of the files out of the Program Files folder, breaking the already installed 6u20. Upgrading from older versions seems to work okay. Rebooting does not cause it to fix itself. The .msi needs to be installed again, then uninstalled, then reinstalled. (or Program Files\Java deleted and then reinstall.)
Messed around with the upgrade table to see if for some reason it decided that GUID was outdated, and it needed to upgrade, but could not get that working in any way. I started comparing it with 6u17, which did not have this problem, but the .msi files were quite similar, so unsure what the difference is that is causing this issue.
If anyone has a clue on this it would be a great help.
PS. This is not the result of any tinkering I did with the transforms to the .msi. The straight-up, unedited .msi will behave like this, which is interesting.
dunno if this might be relevant, but did you look at maybe there being a link between the issues and JRE doing either a Patch-In-Place or Static installation.
I had a quick look at the JRE 1.6.0_20 msi and noticed a couple of properties (MODE / SAME_VERSION_MODE) related to these installation types. They come back ALOT in conditions, so I'd guess they have quite the impact on the installation flow
Looks like these get populated by a system search looking for registry keys in HKLM\Software\JavaSoft. Could it be variables like wether a previous version / same version was already installed STATIC/PATCH IN PLACE affecting the push results? Maybe something to throw a script at, make a little database of found values on target systems...
Just something I thought I'd throw out there
EDIT: looking at this link, does seems like you get widely varying install scenarios depending...
PJ
does anybody have log files of such a behavior?
Would be interesting to have a look at them.
As i wrote before: We disabled the JQS service with version 6.0.12 and never had this problem since then.
I think this comes from an aborted update and the following rollback processes.
Regards, Nick
For those of you having this problem, compare the 1.6.17 .msi with the 1.6.20 msi, in the RemoveFile Table, under the "InstallMode" field. I changed many of those from 3 (Remove on install and uninstall) to 2 (Remove only on uninstall). This solved my issue.
FYI: I did disable the JQS Service and deleted jqs.exe out of the zip file (and jqsservice.exe (or something)), and that had no effect on my issue.
MSI unedited link: http://docs.google.com/leaf?id=0Bz170qNApm2AYTZlNmZhZjItMWUxNS00Y2RkLTgwMzEtZmZjNzVlNGQzMTA0&hl=en&authkey=CNCCyYcM
Link to transform: http://docs.google.com/fileview?id=0Bz170qNApm2ANWE2N2ZlNmYtOThhOS00MDQ2LWIyZDUtMmJlMmI0ODZjMTgw&hl=en&authkey=CLKt6_YI
Ignore the fact that Google thinks .mst is some sort of word format and just download both files.
I had some problems trying to install a new version of Java. In my case it was Java 6 u32 on PCs that have Java 6 u20. I found my problems were due to Internet Explorer running on the PC and holding files open (The FilesInUse bug has been reported here: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6818480)
I've tested two solutions, both seemed to work OK in small-scale testing so far. One was to use a script (I used AutoIt) to check if iexplore.exe was running, prompt and wait for IE to close, then install v6u32.
I also created an SCCM 2007 package and used the Advertisement option to "Assign immediately after this event: Logoff" - this way IE is not running when the Java install executes.
I ran it on a machine that already had J6u20 on it, and did the same thing as the other machines, erased everything, then reported successful. If I run an uninstall (via msiexec cmd line) then an install, everything goes good.
My issue...or maybe someone can help, machines that might already have j6u20, I DONT want the install to run on there if the machine already has it.
I made a collection so it would only point to certain machines, but sometimes, it takes a while for SMS to update the collection, so I always have the case where SMS will install to a machine that already has it installed already...killing the already installed java.
...and what do you know, J6u21 just came out...crap.
msiexec /i jre1.6.0_20.msi TRANSFORMS="1-JRE-1_6_0_20-base.Mst" /qb
Post a log if you could... although let me take a quick crack at 6u21 if I get a second and see if the same issue is there.
EDIT:
Looks like the same issue is present in 6u21. I tried my transform and it appears to solve the issue again, so I'm happy with that solution.
Hmmm... well found your issue. Applying the transformed install to the previous non-transformed install will still cause it to break. It has to be installed from scratch using the transform.... Ill test the upgrade from 6u20 to 6u21... see if that works correctly.
Will also see if there is a workaround...
This is overall very troubling, especially with Java having so many quirky issues... not pleased about having to deploy this...
This wonderful bug still seems to be present in Java 6 Update 23. Had a fun incident with a re-installation of our software GP and poof, all of our java installs no longer worked. Luckily for me, not too many people relied on Java, and I can run a script to remotely fix the rest, but this is a massive pain in the ***. You'd really think they'd want to push their product more and have an *extremely* friendly MSI installer ready to deploy on their site.
There is a bug ID page for this bug. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6947907 . I accidentally spammed comments on this page given that their bugtracking website has terrible loadtimes. I can't say I'm really pleased with the response given thus far on this bug. They act as if we're at fault for "daring" to use an MSI installer, when in fact, they have the MSI method of deployment listed on java.com.
rem in case of broken old install
copy /y regutils.dll "C:\Program Files (x86)\Java\jre6\bin\"
rem breaks install if run twice! (2nd to last 2 numbers in the GID is the version) (64 bit win7)
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{26A24AE4-039D-4CA4-87B4-2F83216030FF}
if errorlevel 1 start /wait msiexec.exe /i jre1.6.0_30.msi /qn
rem check
dir "C:\Program Files (x86)\Java\jre6\bin\new_plugin\npjp2.dll"
so that the conversation will remain readable.