This is an old revision of the document!
Feel free to contact me :)
Tested with Opsi 4.0.4.5
Tested with Windows 7 Enterprise x32 & x64, 8 Enterprise x64, 8.1 Pro x64, Server 2012 R2
Tested with Java 6u10 - 8u11
requiredWinstVersion >= 4.11.3
By Kevin Weis 2014-08-14
Download: All in one - installable opsi package (~ 1.3 GiB)
For an altanative, you can download only the parts you want to support; see Custom install instuctions
Download: Without setup binary´s - installable opsi package (~ 29 KiB)
Download: Setup binary´s - Java 8 (~ 724 MiB)
Download: Setup binary´s - Java 7 (~ 621 MiB)
Download: my Notepad++ Syntax Highlighting
Tree: |-- setup_data | |-- msi | | |-- jdk1.7.0_67 | | | |-- jdk1.7.0_67.msi | | | |-- sj170670.cab | | | |-- ss170670.cab | | | |-- st170670.cab | | | `-- sz170670.cab | | |-- jdk1.7.0_67_x64 | | | |-- jdk1.7.0_67.msi | | | |-- sj170670.cab | | | |-- ss170670.cab | | | |-- st170670.cab | | | `-- sz170670.cab | | |-- jdk1.8.0_11 | | | |-- jdk1.8.0_11.msi | | | |-- sj180110.cab | | | |-- ss180110.cab | | | |-- st180110.cab | | | `-- sz180110.cab | | |-- jdk1.8.0_11_x64 | | | |-- jdk1.8.0_11.msi | | | |-- sj180110.cab | | | |-- ss180110.cab | | | |-- st180110.cab | | | `-- sz180110.cab | | |-- jre1.7.0_67 | | | |-- Data1.cab | | | `-- jre1.7.0_67.msi | | |-- jre1.7.0_67_x64 | | | |-- Data1.cab | | | `-- jre1.7.0_67.msi | | |-- jre1.8.0_11 | | | |-- Data1.cab | | | `-- jre1.8.0_11.msi | | `-- jre1.8.0_11_x64 | | |-- Data1.cab | | `-- jre1.8.0_11.msi | |-- jdk-7u67-windows-i586.exe | |-- jdk-7u67-windows-x64.exe | |-- jdk-8u11-windows-i586.exe | |-- jdk-8u11-windows-x64.exe | |-- jre-7u67-windows-i586.exe | |-- jre-7u67-windows-x64.exe | |-- jre-8u11-windows-i586.exe | |-- jre-8u11-windows-x64.exe | |-- License.txt | `-- License.url |-- UnlimitedJCEPolicy | |-- JCE_PATCHED | |-- local_policy.jar | |-- README.txt | `-- US_export_policy.jar |-- check_msi-exitcode.ins |-- check_uninstall.ins |-- delsub.ins |-- java.png |-- setup.ins |-- Sub_UpdateVariables.ins `-- uninstall.ins
It Does:
It Does NOT:
The package includes the MSI installer for the JRE and JDK x86, because if you want to install Java JRE/JDK x86 on a x64 System the EXE installer will “crash” if it was called in a SYSTEM user context. Calling it by hand will work and my package is designed to manage both cases.
It “crashes” in a SYSTEM user environment, because the x86 installer of Java would exteact a MSI package on a x86 System into “C:\Windows\System32\config\systemprofile\AppData\LocalLow\Sun\Java” and call a MSI file and will install Java.
But on a x64 System the Java installer want to extract the MSI package into the same directory. At this point Windows (x64) redirect the request to “C:\Windows\SysWOW64\config\systemprofile\AppData\LocalLow\Sun\Java”. The x86 Java installer does NOT notice the important redirect and still try to call the MSI file and explode with a, File not found, exeption.
There is no error-reporting or handling by the Java (EXE) installer done, but msiexec.exe does report an 1619 (PACKAGE_OPEN_FAILED) exitcode.
This happends only on x64 System`s. My package will ever prefer of using the EXE installer, the MSI files were only called in a fallback case!
If you want to support Java 8 or Java 7, but not both of them, you can download the installable opsi package without setup binary´s, install the package and then download an extract the setup binary´s into “%ScriptPath%\setup_data\”.
java (1.8.0.11.12-4.2.1) -- Kevin Weis <kevinweis@gmx.de> 2014-08-14 * update; Java 1.0.7.65 build 19 to 1.0.7.67 build 1
diff -rN java_1.8.0.11.12-4.2/CLIENT_DATA/setup.ins java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup.ins 61c61 < Set $StringList_Java7$ = CreateStringList ( '00', '01', '02', '03', '04', '05', '06', '07', '09', '10', '11', '13', '15', '17', '21', '25', '40', '45', '51', '55', '60', '65' ) --- > Set $StringList_Java7$ = CreateStringList ( '00', '01', '02', '03', '04', '05', '06', '07', '09', '10', '11', '13', '15', '17', '21', '25', '40', '45', '51', '55', '60', '65', '67' ) Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/jdk-7u65-windows-i586.exe and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/jdk-7u65-windows-i586.exe differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/jdk-7u65-windows-x64.exe and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/jdk-7u65-windows-x64.exe differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/jdk-7u67-windows-i586.exe and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/jdk-7u67-windows-i586.exe differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/jdk-7u67-windows-x64.exe and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/jdk-7u67-windows-x64.exe differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/jre-7u65-windows-i586.exe and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/jre-7u65-windows-i586.exe differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/jre-7u65-windows-x64.exe and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/jre-7u65-windows-x64.exe differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/jre-7u67-windows-i586.exe and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/jre-7u67-windows-i586.exe differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/jre-7u67-windows-x64.exe and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/jre-7u67-windows-x64.exe differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_65/jdk1.7.0_65.msi and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_65/jdk1.7.0_65.msi differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_65/sj170650.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_65/sj170650.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_65/ss170650.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_65/ss170650.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_65/st170650.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_65/st170650.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_65/sz170650.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_65/sz170650.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_65_x64/jdk1.7.0_65.msi and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_65_x64/jdk1.7.0_65.msi differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_65_x64/sj170650.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_65_x64/sj170650.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_65_x64/ss170650.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_65_x64/ss170650.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_65_x64/st170650.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_65_x64/st170650.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_65_x64/sz170650.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_65_x64/sz170650.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_67/jdk1.7.0_67.msi and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_67/jdk1.7.0_67.msi differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_67/sj170670.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_67/sj170670.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_67/ss170670.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_67/ss170670.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_67/st170670.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_67/st170670.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_67/sz170670.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_67/sz170670.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_67_x64/jdk1.7.0_67.msi and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_67_x64/jdk1.7.0_67.msi differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_67_x64/sj170670.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_67_x64/sj170670.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_67_x64/ss170670.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_67_x64/ss170670.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_67_x64/st170670.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_67_x64/st170670.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jdk1.7.0_67_x64/sz170670.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_67_x64/sz170670.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jre1.7.0_65/Data1.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jre1.7.0_65/Data1.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jre1.7.0_65/jre1.7.0_65.msi and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jre1.7.0_65/jre1.7.0_65.msi differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jre1.7.0_65_x64/Data1.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jre1.7.0_65_x64/Data1.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jre1.7.0_65_x64/jre1.7.0_65.msi and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jre1.7.0_65_x64/jre1.7.0_65.msi differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jre1.7.0_67/Data1.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jre1.7.0_67/Data1.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jre1.7.0_67/jre1.7.0_67.msi and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jre1.7.0_67/jre1.7.0_67.msi differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jre1.7.0_67_x64/Data1.cab and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jre1.7.0_67_x64/Data1.cab differ Binary files java_1.8.0.11.12-4.2/CLIENT_DATA/setup_data/msi/jre1.7.0_67_x64/jre1.7.0_67.msi and java_1.8.0.11.12-4.2.1/CLIENT_DATA/setup_data/msi/jre1.7.0_67_x64/jre1.7.0_67.msi differ diff -rN java_1.8.0.11.12-4.2/CLIENT_DATA/uninstall.ins java_1.8.0.11.12-4.2.1/CLIENT_DATA/uninstall.ins 61c61 < Set $StringList_Java7$ = CreateStringList ( '00', '01', '02', '03', '04', '05', '06', '07', '09', '10', '11', '13', '15', '17', '21', '25', '40', '45', '51', '55', '60', '65' ) --- > Set $StringList_Java7$ = CreateStringList ( '00', '01', '02', '03', '04', '05', '06', '07', '09', '10', '11', '13', '15', '17', '21', '25', '40', '45', '51', '55', '60', '65', '67' ) diff -rN java_1.8.0.11.12-4.2/OPSI/control java_1.8.0.11.12-4.2.1/OPSI/control 2c2 < version: 4.2 --- > version: 4.2.1 78a79,83 > java (1.8.0.11.12-4.2.1) > -- Kevin Weis <kevinweis@gmx.de> 2014-08-14 > * update; Java 1.0.7.65 build 19 to 1.0.7.67 build 1 > > 161a167 >
[Package] version: 4.2.1 depends: incremental: False [Product] type: localboot id: java name: Java description: advice: Tested with Opsi 4.0.4.5 and on Win 8.1 Enterprise, Win 8.1 Pro, Win 7 Enterprise x86 and Win Server 2012 R2 version: 1.8.0.11.12 priority: -95 licenseRequired: False productClasses: setupScript: setup.ins uninstallScript: uninstall.ins updateScript: alwaysScript: onceScript: customScript: userLoginScript: [ProductProperty] type: unicode name: version multivalue: False editable: False description: Install Java 7 or 8. values: ["7", "8"] default: ["8"] [ProductProperty] type: unicode name: vm-type multivalue: False editable: False description: Install the Development Kit (JDK) or just the Java Runtime (JRE). values: ["jdk", "jre"] default: ["jre"] [ProductProperty] type: unicode name: webjava multivalue: False editable: False description: Install Webplugins. values: ["Off", "On"] default: ["On"] [ProductProperty] type: unicode name: webjava-security_level multivalue: False editable: False description: Set default security level, for remote execution of Java content. values: ["H", "M", "VH"] default: ["VH"] [ProductProperty] type: unicode name: java-updater multivalue: False editable: False description: Toggle the Java-Updater and Update-Notifications. values: ["Off", "On"] default: ["Off"] [ProductProperty] type: unicode name: 32bitonly multivalue: False editable: False description: Toggle if on a 64bit OS only the 32bit JRE/JDK will be installed. values: ["False", "True"] default: ["False"] [Changelog] java (1.8.0.11.12-4.2.1) -- Kevin Weis <kevinweis@gmx.de> 2014-08-14 * update; Java 1.0.7.65 build 19 to 1.0.7.67 build 1 java (1.8.0.11.12-4.2) -- Kevin Weis <kevinweis@gmx.de> 2014-07-21 * update; Java 1.0.7.60 build 19 to 1.0.7.65 build 19 java (1.8.0.05.13-4.2) -- Kevin Weis <kevinweis@gmx.de> 2014-06-14 * update; Java 1.0.7.55 to 1.0.7.60 build 19 * add ProductProperty "32bitOnly". The functionality of this option will be extended with the next Java 8 update. * since this update (Java 7u60 JRE x64/x86) the MSI-GUID has changed at one charcter (from "8" to "0"), no idea why -> ask Oracle -.- (see "check_uninstall.ins" from line 69 - 74) Minor changes: * add killing Opera.exe, before in-/uninstall. * little Bug-fix which caused an installation abort with the (expected at this point) error code 1619. java (1.8.0.05.13-4.1) urgency=high -- Kevin Weis <kevin.weis@faw.de> 2014-04-17 * update * add JRE and JDK of Java 7 (ProductProperty "Version") * add discriptions to all ProductPropertys * change default of ProductProperty "VM-Type" from "jdk" to "jre" (if winst script is called by hand "jdk" is the default) * change default of ProductProperty "WebJava-Security_Level" from "M" to "VH" * NOTE: I´m using the JCE patch for Java 8, this work for Java 7 too (tested, no unwanted behaviour with SHA384, SHA512, AES192 and AES256) Minor changes: * Apply new variables nomination * Fix check for minnimum Microsoft Windows Version (Java 8 is not supported on Windows XP, minnimum is Windows Vista >= 6.0) * If some fatal error occours, the error will now be displayed (as a Message), too. * clean up check_msi-exitcode; remove dead code and display fatal errors. * automate get last version of Java 7 and 8 (StringList) java (1.8.0-4) urgency=high -- Kevin Weis <kevin.weis@faw.de> 2014-03-25.1933 * update * switch install procedure to exe, insted deprecated use of the msi-package * drop install procedure using the msi-package * add support for in- and uninstall both (jdk and jre), jce patched of cause ;) * switch message locale from german to english * Use the check_msi-exitcode script from “Der-Matze”: https://forum.opsi.org/wiki/userspace:check_msi-exitcode see also: http://www.oracle.com/technetwork/java/javase/8train-relnotes-latest-2153846.html java (7.0.51-3) urgency=high -- Kevin Weis <kevin.weis@faw.de> 2014-01-17.1220 * update * add patch for JCE (Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7) * find installed versions of JRE now by using a for loop (supporting deinstallation since java 6u10 x64 and x32) * serval other little impovments java (7.0.40-2.2) urgency=high -- Kevin Weis <kevin.weis@faw.de> 2013-10-14.1009 update java version to 7.0.40 SetLogLevel=4 check_uninstall.ins: add explicit declaration for >=java-7.0.10 of "GetRegistryStringValue32" and "GetRegistryStringValue64" java (7.0.25-2.1) urgency=high -- Kevin Weis <kevin.weis@faw.de> 13:39 02.04.2013 * check_uninstall.ins:4-9 java (7.0.17-2.1) urgency=high -- Kevin Weis <kevin.weis@faw.de> 13:39 02.04.2013 - Bugfix bugfix = hing fest bei der Installation/Deinstallation java (7.0.9-2.0) urgency=high -- Kevin Weis <kevin.weis@faw.de> 12:19 12.11.2012 - Umstellung auf MSI - Automatische Entscheidung zwischen x86 und x64 - autoupdate = off - Bugfix = hing fest bei der Installation/Deinstallation java (7.0-7) testing; urgency=low java (7.0-4) testing; urgency=low -- Kevin Weis <kevinweis@gmx.de> 12:39 05.11.2012 * Initial package