We all know that the standard Java Runtime Environment is bundled with the executable for Java Development Kit. I mean, it would be CRAZY to have the means to develop Java applications but not be able to actually run any simple web apps, right?
Well, in doing a silent MSI deployment of JDK 1.6 (both Update 2 and then later Update 3), I could not for the LIFE of me get the included JRE to install. Even worse yet was the fact that there were no error messages or any other kinds of warnings that JRE fell by the wayside. That is, not until somebody needed to use some Java-driven web applications and both IE and FireFox reported that Java was MIA.
I tried ripping open JDK's MSI with Orca, but there were no properties for IEXPLORE or MOZILLA like there are in JRE's MSI. I then tried a couple different tools to create a transforms file, but THAT didn't work because of the nature of JDK's installer. When doing a manual installation from the executable you would get to the last dialog for JDK, then JDK would install. Once JDK was done, THEN you would get to the prompt for the "advanced" settings; this is the point where the JRE installation runs. When doing it this way (manually), JRE installs by default and with the IE and FF plug-ins enabled, and everybody rejoices. But when trying to capture the dialog responses for the transforms file, the packagers I used both "concluded" after the last dialog for the JDK portion of the installation. They apparently didn't recognize that there were more options down the road after JDK itself installs, and so there was no way to have the transforms file include anything about the JRE portion of the installation.
Bottom line: I ended up having to download and launch the JRE MSI separately (see the other entries about JRE in the Package KB for details on how to extract and/or modify its MSI) in addition to the JDK package. So far it works great; I push them out separately, they are completely independent from one another and there are no consequences with pushing out one before the other.
If anybody happens to know of a way to do a silent push of JDK's MSI to include the JRE then I'd love to hear it and be able to kill two birds with one stone. Otherwise, I hope the information above is able to spare somebody else the same headache I went through.
In the msi the publicjre and javadb are executed in the InstallUISequence. This sequence is only run in Full and Reduced UI modes which is why these features do not install with the /qb and /qn command switches.
Using the following steps & command will allow all features to install unattended.
Open the msi in orca or any other msi editor. Open the CustomAction table and change the commandline stored in the "installpublicjre" to
ADDLOCAL isn't required, if it's not specified the installer installs all features.
IE & MOZILLA have been deprecated.
STATIC=1 stops other version installers from updating or uninstalling this version. (Exclude if you don't need multiple versions of java installed).
It's not completely silent but at least it will install the java jdk with all features unattended.