User Tools

Site Tools


userspace:java-ng

This is an old revision of the document!


Java (java_1.8.0.05.13-4.2)

Feel free to contact me :)

Tested with Opsi 4.0.4.5
Tested with Windows 7 Enterprise x32, 8 Enterprise x64, 8.1 Pro x64
Tested with Java 6u10 - 8u5
requiredWinstVersion >= 4.11.3
By Kevin Weis 2014-06-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 (~ 27 KiB)
Download: Setup binary´s - Java 8 (~ 516 MiB)
Download: Setup binary´s - Java 7 (~ 621 MiB)

Download: my Notepad++ Syntax Highlighting

Tree:
|-- setup_data
|   |-- msi
|   |   |-- jdk1.7.0_60
|   |   |   |-- jdk1.7.0_60.msi
|   |   |   |-- sj170600.cab
|   |   |   |-- ss170600.cab
|   |   |   |-- st170600.cab
|   |   |   `-- sz170600.cab
|   |   |-- jdk1.7.0_60_x64
|   |   |   |-- jdk1.7.0_60.msi
|   |   |   |-- sj170600.cab
|   |   |   |-- ss170600.cab
|   |   |   |-- st170600.cab
|   |   |   `-- sz170600.cab
|   |   |-- jdk1.8.0_05
|   |   |   |-- jdk1.8.0_05.msi
|   |   |   |-- sj180050.cab
|   |   |   |-- ss180050.cab
|   |   |   |-- st180050.cab
|   |   |   `-- sz180050.cab
|   |   |-- jdk1.8.0_05_x64
|   |   |   |-- jdk1.8.0_05.msi
|   |   |   |-- sj180050.cab
|   |   |   |-- ss180050.cab
|   |   |   |-- st180050.cab
|   |   |   `-- sz180050.cab
|   |   |-- jre1.7.0_60
|   |   |   |-- Data1.cab
|   |   |   `-- jre1.7.0_60.msi
|   |   |-- jre1.7.0_60_x64
|   |   |   |-- Data1.cab
|   |   |   `-- jre1.7.0_60.msi
|   |   |-- jre1.8.0_05
|   |   |   |-- Data1.cab
|   |   |   |-- jre1.8.0_05.msi
|   |   |   `-- jre1031.MST
|   |   `-- jre1.8.0_05_x64
|   |       |-- Data1.cab
|   |       `-- jre1.8.0_05.msi
|   |-- jdk-7u60-windows-i586.exe
|   |-- jdk-7u60-windows-x64.exe
|   |-- jdk-8u05-windows-i586.exe
|   |-- jdk-8u05-windows-x64.exe
|   |-- jre-7u60-windows-i586.exe
|   |-- jre-7u60-windows-x64.exe
|   |-- jre-8u05-windows-i586.exe
|   |-- jre-8u05-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

What is does, and what not

It Does:

  1. Handle install and uninstall of: x64 and x86, JRE of Java 1.6.0.10 until 1.8.0.05, JDK of Java 1.7.0.0 until 1.8.0.05
  2. Installation of Java 7 or Java 8
  3. Add the JCE Patch to every Java installation; see: JCE Documentation
  4. Use the check_msi-exitcode script from “Der-Matze”: check_msi-exitcode

It Does NOT:

  1. Uninstall Java versions older then 1.6.0.10, because in update 10 was a new installer dropped which uses an other schema of GUID´s at the Windows Registry
  2. Uninstall Java JDK`s older then 1.7.0.0

Notes

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!

Custom install instuctions

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\”.

Change Log

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.

TODO

  1. ProductProperty “32bitOnly”: The functionality of this option will be extended with the next Java 8 update.
  2. Add support for in-/de-installation of JavaFX

DIFF

java_1.8.0-3.1.diff
diff -rN java_1.8.0.05.13-4.1/CLIENT_DATA/check_msi-exitcode.ins java/CLIENT_DATA/check_msi-exitcode.ins
8c8
< 		Comment "ExitCode = " + $Temp_ExitCode$ + " Action completed successfully."
---
> 		Comment ": " + $Temp_ExitCode$ + " Action completed successfully."
14c14
< 		Comment "ExitCode = " + $Temp_ExitCode$ + " ERROR_SUCCESS_REBOOT_INITIATED The installer has started a reboot. This error code Not available on Windows Installer version 1.0."
---
> 		Comment ": " + $Temp_ExitCode$ + " ERROR_SUCCESS_REBOOT_INITIATED The installer has started a reboot. This error code Not available on Windows Installer version 1.0."
20c20
< 		Comment "ExitCode = " + $Temp_ExitCode$ + " ERROR_SUCCESS_REBOOT_REQUIRED A reboot is required to complete the install. This does Not include installs where the ForceReboot action is run. This error code Not available on Windows Installer version 1.0."
---
> 		Comment ": " + $Temp_ExitCode$ + " ERROR_SUCCESS_REBOOT_REQUIRED A reboot is required to complete the install. This does Not include installs where the ForceReboot action is run. This error code Not available on Windows Installer version 1.0."
30c30
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INVALID_DATA The data is invalid."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_DATA The data is invalid."
38c38
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INVALID_PARAMETER One of the parameters was invalid."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_PARAMETER One of the parameters was invalid."
46c46
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_CALL_NOT_IMPLEMENTED This function is Not available For this platform. It is only available on Windows 2000 And Windows XP with Window Installer version 2.0."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_CALL_NOT_IMPLEMENTED This function is Not available For this platform. It is only available on Windows 2000 And Windows XP with Window Installer version 2.0."
54c54
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_APPHELP_BLOCK This error code only occurs when using Windows Installer version 2.0 And Windows XP Or later. If Windows Installer determines a product may be incompatible with the current operating system, it displays a dialog informing the user And asking whether to try to install anyway. This error code is returned If the user chooses Not to try the installation."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_APPHELP_BLOCK This error code only occurs when using Windows Installer version 2.0 And Windows XP Or later. If Windows Installer determines a product may be incompatible with the current operating system, it displays a dialog informing the user And asking whether to try to install anyway. This error code is returned If the user chooses Not to try the installation."
62c62
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_SERVICE_FAILURE The Windows Installer service could Not be accessed. Contact your support personnel to verify that the Windows Installer service is properly registered."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_SERVICE_FAILURE The Windows Installer service could Not be accessed. Contact your support personnel to verify that the Windows Installer service is properly registered."
70c70
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_USEREXIT User cancel installation."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_USEREXIT User cancel installation."
78c78
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_FAILURE Fatal error during installation."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_FAILURE Fatal error during installation."
86c86
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_SUSPEND Installation suspended, incomplete."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_SUSPEND Installation suspended, incomplete."
94c94
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_UNKNOWN_PRODUCT This action is only valid For products that are currently installed."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_UNKNOWN_PRODUCT This action is only valid For products that are currently installed."
102c102
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_UNKNOWN_FEATURE Feature ID Not registered."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_UNKNOWN_FEATURE Feature ID Not registered."
110c110
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_UNKNOWN_COMPONENT Component ID Not registered."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_UNKNOWN_COMPONENT Component ID Not registered."
118c118
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_UNKNOWN_PROPERTY Unknown property."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_UNKNOWN_PROPERTY Unknown property."
126c126
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INVALID_HANDLE_STATE Handle is In an invalid state."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_HANDLE_STATE Handle is In an invalid state."
134c134
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_BAD_CONFIGURATION The configuration data For this product is corrupt. Contact your support personnel."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_BAD_CONFIGURATION The configuration data For this product is corrupt. Contact your support personnel."
142c142
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INDEX_ABSENT Component qualifier Not present."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INDEX_ABSENT Component qualifier Not present."
150c150
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_SOURCE_ABSENT The installation source For this product is Not available. Verify that the source exists And that you can access it."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_SOURCE_ABSENT The installation source For this product is Not available. Verify that the source exists And that you can access it."
158c158
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_VERSION This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_VERSION This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service."
166c166
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_PRODUCT_UNINSTALLED Product is uninstalled."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PRODUCT_UNINSTALLED Product is uninstalled."
174c174
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_BAD_QUERY_SYNTAX SQL query syntax invalid Or unsupported."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_BAD_QUERY_SYNTAX SQL query syntax invalid Or unsupported."
182c182
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INVALID_FIELD Record field does Not exist."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_FIELD Record field does Not exist."
190c190
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_ALREADY_RUNNING Another installation is already In progress. Complete that installation before proceeding with this install."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_ALREADY_RUNNING Another installation is already In progress. Complete that installation before proceeding with this install."
198c198
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_OPEN_FAILED This installation package could Not be opened. Verify that the package exists And that you can access it, Or contact the application vendor to verify that this is a valid Windows Installer package."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_OPEN_FAILED This installation package could Not be opened. Verify that the package exists And that you can access it, Or contact the application vendor to verify that this is a valid Windows Installer package."
206c206
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_INVALID This installation package could Not be opened. Contact the application vendor to verify that this is a valid Windows Installer package."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_INVALID This installation package could Not be opened. Contact the application vendor to verify that this is a valid Windows Installer package."
214c214
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_UI_FAILURE There was an error starting the Windows Installer service user interface. Contact your support personnel."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_UI_FAILURE There was an error starting the Windows Installer service user interface. Contact your support personnel."
222c222
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_LOG_FAILURE Error opening installation log file. Verify that the specified log file location exists And is writable."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_LOG_FAILURE Error opening installation log file. Verify that the specified log file location exists And is writable."
230c230
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_LANGUAGE_UNSUPPORTED This language of this installation package is Not supported by your system."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_LANGUAGE_UNSUPPORTED This language of this installation package is Not supported by your system."
238c238
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_TRANSFORM_FAILURE Error applying transforms. Verify that the specified transform paths are valid."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_TRANSFORM_FAILURE Error applying transforms. Verify that the specified transform paths are valid."
246c246
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_REJECTED This installation is forbidden by system policy. Contact your system administrator."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_REJECTED This installation is forbidden by system policy. Contact your system administrator."
254c254
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_FUNCTION_NOT_CALLED Function could Not be executed."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_FUNCTION_NOT_CALLED Function could Not be executed."
262c262
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_FUNCTION_FAILED Function failed during execution."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_FUNCTION_FAILED Function failed during execution."
270c270
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INVALID_TABLE Invalid Or unknown table specified."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_TABLE Invalid Or unknown table specified."
278c278
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_DATATYPE_MISMATCH Data supplied is of wrong type."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_DATATYPE_MISMATCH Data supplied is of wrong type."
286c286
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_UNSUPPORTED_TYPE Data of this type is Not supported."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_UNSUPPORTED_TYPE Data of this type is Not supported."
294c294
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_CREATE_FAILED The Windows Installer service failed to start. Contact your support personnel."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_CREATE_FAILED The Windows Installer service failed to start. Contact your support personnel."
302c302
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_TEMP_UNWRITABLE The temp folder is either full Or inaccessible. Verify that the temp folder exists And that you can write to it."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_TEMP_UNWRITABLE The temp folder is either full Or inaccessible. Verify that the temp folder exists And that you can write to it."
310c310
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_PLATFORM_UNSUPPORTED This installation package is Not supported on this platform. Contact your application vendor."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_PLATFORM_UNSUPPORTED This installation package is Not supported on this platform. Contact your application vendor."
318c318
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_NOTUSED Component Not used on this machine"
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_NOTUSED Component Not used on this machine"
326c326
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_OPEN_FAILED This patch package could Not be opened. Verify that the patch package exists And that you can access it, Or contact the application vendor to verify that this is a valid Windows Installer patch package."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_OPEN_FAILED This patch package could Not be opened. Verify that the patch package exists And that you can access it, Or contact the application vendor to verify that this is a valid Windows Installer patch package."
334c334
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_INVALID This patch package could Not be opened. Contact the application vendor to verify that this is a valid Windows Installer patch package."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_INVALID This patch package could Not be opened. Contact the application vendor to verify that this is a valid Windows Installer patch package."
342c342
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_UNSUPPORTED This patch package cannot be processed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_UNSUPPORTED This patch package cannot be processed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service."
350c350
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_PRODUCT_VERSION Another version of this product is already installed. Installation of this version cannot continue. To configure Or remove the existing version of this product, use Add/Remove Programs on the Control Panel."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PRODUCT_VERSION Another version of this product is already installed. Installation of this version cannot continue. To configure Or remove the existing version of this product, use Add/Remove Programs on the Control Panel."
358c358
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INVALID_COMMAND_LINE Invalid command line argument. Consult the Windows Installer SDK For detailed command line help."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_COMMAND_LINE Invalid command line argument. Consult the Windows Installer SDK For detailed command line help."
366c366
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_REMOTE_DISALLOWED Installation from a Terminal Server client session Not permitted For current user."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_REMOTE_DISALLOWED Installation from a Terminal Server client session Not permitted For current user."
374c374
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_PATCH_TARGET_NOT_FOUND The installer cannot install the upgrade patch because the program being upgraded may be missing Or the upgrade patch updates a different version of the program. Verify that the program to be upgraded exists on your computer And that you have the correct upgrade patch. This error code is Not available on Windows Installer version 1.0."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PATCH_TARGET_NOT_FOUND The installer cannot install the upgrade patch because the program being upgraded may be missing Or the upgrade patch updates a different version of the program. Verify that the program to be upgraded exists on your computer And that you have the correct upgrade patch. This error code is Not available on Windows Installer version 1.0."
382c382
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_REJECTED The patch package is Not permitted by system policy. This error code is available with Windows Installer versions 2.0 Or later."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_REJECTED The patch package is Not permitted by system policy. This error code is available with Windows Installer versions 2.0 Or later."
390c390
< 		Set $Temp_Message$ = "ExitCode = " + $Temp_ExitCode$ + " ERROR_INSTALL_TRANSFORM_REJECTED One Or more customizations are Not permitted by system policy. This error code is available with Windows Installer versions 2.0 Or later."
---
> 		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_TRANSFORM_REJECTED One Or more customizations are Not permitted by system policy. This error code is available with Windows Installer versions 2.0 Or later."
diff -rN java_1.8.0.05.13-4.1/CLIENT_DATA/check_uninstall.ins java/CLIENT_DATA/check_uninstall.ins
68a69,75
> ; It Seems this one does only affect Java 7 JRE x64 and x86
> If ( "$x$" >= "60" )
> 	Set $Temp_MsiDiff01$ = "0"
> Else
> 	Set $Temp_MsiDiff01$ = "8"
> EndIf
> 
100c107
< 	Set $ProductDisplayName$ = GetRegistryStringValue ( "[" + $RegistryPath$ + "{26A24AE4-039D-4CA4-87B4-2F832170" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
---
> 	Set $ProductDisplayName$ = GetRegistryStringValue ( "[" + $RegistryPath$ + "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "32170" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
103c110
< 		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F832170" + "$x$" + $Temp_MsiSuffix$ + "}"
---
> 		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "32170" + "$x$" + $Temp_MsiSuffix$ + "}"
109c116
< 	Set $ProductDisplayName$ = GetRegistryStringValue32 ( "[" + $RegistryPath_x64$ + "{26A24AE4-039D-4CA4-87B4-2F832170" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
---
> 	Set $ProductDisplayName$ = GetRegistryStringValue32 ( "[" + $RegistryPath_x64$ + "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "32170" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
112c119
< 		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F832170" + "$x$" + $Temp_MsiSuffix$ + "}"
---
> 		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "32170" + "$x$" + $Temp_MsiSuffix$ + "}"
117c124
< 	Set $ProductDisplayName$ = GetRegistryStringValue64 ( "[" + $RegistryPath$ + "{26A24AE4-039D-4CA4-87B4-2F864170" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
---
> 	Set $ProductDisplayName$ = GetRegistryStringValue64 ( "[" + $RegistryPath$ + "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "64170" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
120c127
< 		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F864170" + "$x$" + $Temp_MsiSuffix$ + "}"
---
> 		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "64170" + "$x$" + $Temp_MsiSuffix$ + "}"
diff -rN java_1.8.0.05.13-4.1/CLIENT_DATA/delsub.ins java/CLIENT_DATA/delsub.ins
5a6
> KillTask "opera.exe"
11a13
> ; Set Timeout in case of an hangup while deinstalling
diff -rN java_1.8.0.05.13-4.1/CLIENT_DATA/setup.ins java/CLIENT_DATA/setup.ins
39a40
> DefVar $ProductProperty_32bitOnly$
48a50
> DefVar $Temp_MsiDiff01$
56c58
< Set $StringList_Java6$ = CreateStringList ( '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '43', '45', '51', '65', '71' )
---
> Set $StringList_Java6$ = CreateStringList ( '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '43', '45', '51', '65', '71', '75' )
59c61
< Set $StringList_Java7$ = CreateStringList ( '00', '01', '02', '03', '04', '05', '06', '07', '09', '10', '11', '13', '15', '17', '21', '25', '40', '45', '51', '55' )
---
> 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' )
74,78c76,81
< Set $ProductProperty_Java-Updater$				= GetProductProperty ( "Java-Updater"			, "Off"	)
< Set $ProductProperty_VM-Type$				= GetProductProperty ( "VM-Type"					, "jdk"	)
< Set $ProductProperty_Version$				= GetProductProperty ( "Version"					, "8"	)
< Set $ProductProperty_WebJava$				= GetProductProperty ( "WebJava"					, "On"	)
< Set $ProductProperty_WebJava-Security_Level$	= GetProductProperty ( "WebJava-Security_Level"	, "VH"	)
---
> Set $ProductProperty_Java-Updater$				= GetProductProperty ( "Java-Updater"			, "Off"		)
> Set $ProductProperty_VM-Type$				= GetProductProperty ( "VM-Type"					, "jre"		)
> Set $ProductProperty_Version$				= GetProductProperty ( "Version"					, "7"		)
> Set $ProductProperty_WebJava$				= GetProductProperty ( "WebJava"					, "On"		)
> Set $ProductProperty_WebJava-Security_Level$	= GetProductProperty ( "WebJava-Security_Level"	, "VH"		)
> Set $ProductProperty_32bitOnly$				= GetProductProperty ( "32bitOnly"				, "False"	)
122c125
< ShowBitMap /3 "%ScriptPath%\java.png" $ProductName$
---
> ShowBitMap "%ScriptPath%\java.png" $ProductName$
158c161,162
<         Message "Install " + $ProductDisplayVersion_x64$
---
> 	If $ProductProperty_32bitOnly$ = "False"
> 		Message "Install " + $ProductDisplayVersion_x64$
169c173
<         
---
> 		
172a177
> 	EndIf
174,182c179,194
< 		Message "Install " + $ProductDisplayVersion_x32$ + " first try"
< 		If FileExists ( $PathSetup_Data$ + $PathSetup_Exe32$ )
< 			SetLogLevel = 6
< 			WinBatch_install_x86 /WaitOnClose
< 			SetLogLevel = 1
< 			Sub "%ScriptPath%\check_msi-exitcode.ins"
< 		Else
< 			LogWarning "File not found: " + $exePath$ + $exe_32$
< 		EndIf
---
> 	Message "Install " + $ProductDisplayVersion_x32$ + " first try"
> 	If FileExists ( $PathSetup_Data$ + $PathSetup_Exe32$ )
> 		SetLogLevel = 6
> 		WinBatch_install_x86 /WaitOnClose
> 		SetLogLevel = $DefaultLogLevel$
> 	Else
> 		LogWarning "File not found: " + $exePath$ + $exe_32$
> 	EndIf
> 	
> 	; Installation of Java x86 at a x64 system envirement does "fail", because the java x86 installer seems NOT to be designed to be executed In a SYSTEM "user" conetxt.
> 	Set $Temp_ExitCode$ = GetLastExitCode
> 	If $Temp_ExitCode$ = "1619"
> 		Comment "ExitCode = " + $Temp_ExitCode$ + ' ERROR_INSTALL_PACKAGE_OPEN_FAILED; This is what we expected, so its a "good" sign.'
> 		SetLogLevel = 5
> 		Files_delete_broken_x86_x64 /32Bit
> 		SetLogLevel = 1
184,208c196,197
< 		; Installation of Java x86 at a x64 system envirement does "fail", because the java x86 installer seems NOT to be designed to be executed In a SYSTEM "user" conetxt.
< 		Set $Temp_ExitCode$ = GetLastExitCode
< 		If $Temp_ExitCode$ = "1619"
< 			Comment "ExitCode = " + $Temp_ExitCode$ + ' ERROR_INSTALL_PACKAGE_OPEN_FAILED; This is what we expected, so its a "good" sign.'
< 			SetLogLevel = 5
< 			Files_delete_broken_x86_x64 /32Bit
< 			SetLogLevel = 1
< 			Sub "%ScriptPath%\check_msi-exitcode.ins"
< 			
< 			Message "Install " + $ProductDisplayVersion_x32$ + " second try"
< 			If $ProductProperty_VM-Type$ = "jdk"
< 				If FileExists ( $PathSetup_Data$ + $PathSetup_Msi32$ )
< 					SetLogLevel = 6
< 					WinBatch_install_x86_64_UseMSI /WaitOnClose
< 					SetLogLevel = 1
< 					Sub "%ScriptPath%\check_msi-exitcode.ins"
< 				Else
< 					Message "Fatal error: File not found: " + $PathSetup_Data$ + $PathSetup_Msi32$
< 					LogError "File not found: " + $PathSetup_Data$ + $PathSetup_Msi32$
< 					IsFatalError "File not found: " + $exePath$ + $msi32$
< 				EndIf
< 			EndIf
< 			
< 			; Explicit install Java x86, because in this situation the Java Installer (MSI) only install the jdk And for some reason it does NOT install the jre :(
< 			Set $PathSetup_Msi32$ = "msi\jre" + $ProductVersion$ + "\jre" + $ProductVersion$ + ".msi"
---
> 		Message "Install " + $ProductDisplayVersion_x32$ + " second try"
> 		If $ProductProperty_VM-Type$ = "jdk"
217c206
< 				IsFatalError "File not found: " + $PathSetup_Data$ + $PathSetup_Msi32$
---
> 				IsFatalError "File not found: " + $exePath$ + $msi32$
219,223d207
< 			
< 			; Reset changed variables
< 			Sub "%ScriptPath%\Sub_UpdateVariables.ins"
< 		Else
< 			Sub "%ScriptPath%\check_msi-exitcode.ins"
225,226c209,220
< 		If $ProductProperty_Java-Updater$ = "JAVAUPDATE=0"
< 			Registry_disable_update /32Bit
---
> 		
> 		; Explicit install Java x86, because in this situation the Java Installer (MSI) only install the jdk And for some reason it does NOT install the jre :(
> 		Set $PathSetup_Msi32$ = "msi\jre" + $ProductVersion$ + "\jre" + $ProductVersion$ + ".msi"
> 		If FileExists ( $PathSetup_Data$ + $PathSetup_Msi32$ )
> 			SetLogLevel = 6
> 			WinBatch_install_x86_64_UseMSI /WaitOnClose
> 			SetLogLevel = 1
> 			Sub "%ScriptPath%\check_msi-exitcode.ins"
> 		Else
> 			Message "Fatal error: File not found: " + $PathSetup_Data$ + $PathSetup_Msi32$
> 			LogError "File not found: " + $PathSetup_Data$ + $PathSetup_Msi32$
> 			IsFatalError "File not found: " + $PathSetup_Data$ + $PathSetup_Msi32$
227a222,230
> 		
> 		; Reset changed variables
> 		Sub "%ScriptPath%\Sub_UpdateVariables.ins"
> 	Else
> 		Sub "%ScriptPath%\check_msi-exitcode.ins"
> 	EndIf
> 	If $ProductProperty_Java-Updater$ = "JAVAUPDATE=0"
> 		Registry_disable_update /32Bit
> 	EndIf
252c255
< If $ProcessorArchitecture$ = "64 Bit System"
---
> If $ProcessorArchitecture$ = "64 Bit System" And $ProductProperty_32bitOnly$ = "False"
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/jdk-7u55-windows-i586.exe and java/CLIENT_DATA/setup_data/jdk-7u55-windows-i586.exe differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/jdk-7u55-windows-x64.exe and java/CLIENT_DATA/setup_data/jdk-7u55-windows-x64.exe differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/jdk-7u60-windows-i586.exe and java/CLIENT_DATA/setup_data/jdk-7u60-windows-i586.exe differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/jdk-7u60-windows-x64.exe and java/CLIENT_DATA/setup_data/jdk-7u60-windows-x64.exe differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/jre-7u55-windows-i586.exe and java/CLIENT_DATA/setup_data/jre-7u55-windows-i586.exe differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/jre-7u55-windows-x64.exe and java/CLIENT_DATA/setup_data/jre-7u55-windows-x64.exe differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/jre-7u60-windows-i586.exe and java/CLIENT_DATA/setup_data/jre-7u60-windows-i586.exe differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/jre-7u60-windows-x64.exe and java/CLIENT_DATA/setup_data/jre-7u60-windows-x64.exe differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_55/jdk1.7.0_55.msi and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_55/jdk1.7.0_55.msi differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_55/sj170550.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_55/sj170550.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_55/ss170550.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_55/ss170550.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_55/st170550.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_55/st170550.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_55/sz170550.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_55/sz170550.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_60/jdk1.7.0_60.msi and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_60/jdk1.7.0_60.msi differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_60/sj170600.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_60/sj170600.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_60/ss170600.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_60/ss170600.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_60/st170600.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_60/st170600.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_60/sz170600.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_60/sz170600.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_60_x64/jdk1.7.0_60.msi and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_60_x64/jdk1.7.0_60.msi differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_60_x64/sj170600.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_60_x64/sj170600.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_60_x64/ss170600.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_60_x64/ss170600.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_60_x64/st170600.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_60_x64/st170600.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.7.0_60_x64/sz170600.cab and java/CLIENT_DATA/setup_data/msi/jdk1.7.0_60_x64/sz170600.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.8.0_05_x64/jdk1.8.0_05.msi and java/CLIENT_DATA/setup_data/msi/jdk1.8.0_05_x64/jdk1.8.0_05.msi differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.8.0_05_x64/sj180050.cab and java/CLIENT_DATA/setup_data/msi/jdk1.8.0_05_x64/sj180050.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.8.0_05_x64/ss180050.cab and java/CLIENT_DATA/setup_data/msi/jdk1.8.0_05_x64/ss180050.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.8.0_05_x64/st180050.cab and java/CLIENT_DATA/setup_data/msi/jdk1.8.0_05_x64/st180050.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jdk1.8.0_05_x64/sz180050.cab and java/CLIENT_DATA/setup_data/msi/jdk1.8.0_05_x64/sz180050.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jre1.7.0_55/Data1.cab and java/CLIENT_DATA/setup_data/msi/jre1.7.0_55/Data1.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jre1.7.0_55/jre1.7.0_55.msi and java/CLIENT_DATA/setup_data/msi/jre1.7.0_55/jre1.7.0_55.msi differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jre1.7.0_55/jre1031.MST and java/CLIENT_DATA/setup_data/msi/jre1.7.0_55/jre1031.MST differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jre1.7.0_60/Data1.cab and java/CLIENT_DATA/setup_data/msi/jre1.7.0_60/Data1.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jre1.7.0_60/jre1.7.0_60.msi and java/CLIENT_DATA/setup_data/msi/jre1.7.0_60/jre1.7.0_60.msi differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jre1.7.0_60_x64/Data1.cab and java/CLIENT_DATA/setup_data/msi/jre1.7.0_60_x64/Data1.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jre1.7.0_60_x64/jre1.7.0_60.msi and java/CLIENT_DATA/setup_data/msi/jre1.7.0_60_x64/jre1.7.0_60.msi differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jre1.8.0_05_x64/Data1.cab and java/CLIENT_DATA/setup_data/msi/jre1.8.0_05_x64/Data1.cab differ
Binary files java_1.8.0.05.13-4.1/CLIENT_DATA/setup_data/msi/jre1.8.0_05_x64/jre1.8.0_05.msi and java/CLIENT_DATA/setup_data/msi/jre1.8.0_05_x64/jre1.8.0_05.msi differ
diff -rN java_1.8.0.05.13-4.1/CLIENT_DATA/uninstall.ins java/CLIENT_DATA/uninstall.ins
39a40
> DefVar $ProductProperty_32bitOnly$
45a47
> DefVar $Temp_MicrosoftWindowsVersionRequiredName$
47a50
> DefVar $Temp_MsiDiff01$
55c58
< Set $StringList_Java6$ = CreateStringList ( '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '43', '45', '51', '65', '71' )
---
> Set $StringList_Java6$ = CreateStringList ( '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '43', '45', '51', '65', '71', '75' )
58c61
< Set $StringList_Java7$ = CreateStringList ( '00', '01', '02', '03', '04', '05', '06', '07', '09', '10', '11', '13', '15', '17', '21', '25', '40', '45', '51', '55' )
---
> 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' )
68c71
< Set $IsUninstall$							= "True"
---
> Set $IsUninstall$							= "False"
73,77c76,81
< Set $ProductProperty_Java-Updater$				= GetProductProperty ( "Java-Updater"			, "Off"	)
< Set $ProductProperty_VM-Type$				= GetProductProperty ( "VM-Type"					, "jdk"	)
< Set $ProductProperty_Version$				= GetProductProperty ( "Version"					, "8"	)
< Set $ProductProperty_WebJava$				= GetProductProperty ( "WebJava"					, "On"	)
< Set $ProductProperty_WebJava-Security_Level$	= GetProductProperty ( "WebJava-Security_Level"	, "VH"	)
---
> Set $ProductProperty_Java-Updater$				= GetProductProperty ( "Java-Updater"			, "Off"		)
> Set $ProductProperty_VM-Type$				= GetProductProperty ( "VM-Type"					, "jre"		)
> Set $ProductProperty_Version$				= GetProductProperty ( "Version"					, "7"		)
> Set $ProductProperty_WebJava$				= GetProductProperty ( "WebJava"					, "On"		)
> Set $ProductProperty_WebJava-Security_Level$	= GetProductProperty ( "WebJava-Security_Level"	, "VH"		)
> Set $ProductProperty_32bitOnly$				= GetProductProperty ( "32bitOnly"				, "True"	)
118c122
< Set $Arguments_Exe$ = "/s " + $ProductProperty_WebJava$ + " " + $ProductProperty_WebJava-Security_Level$
---
> Set $Arguments_Exe$ = "/s " + $ProductProperty_WebJava$ + " " + $ProductProperty_WebJava-Security_Level$ + " STATIC=0"
121c125
< ShowBitMap /3 "%ScriptPath%\java.png" $ProductName$
---
> ShowBitMap "%ScriptPath%\java.png" $ProductName$
diff -rN java_1.8.0.05.13-4.1/OPSI/control java/OPSI/control
2c2
< version: 4.1
---
> version: 4.2
11c11
< advice: 
---
> advice: Tested with Opsi 4.0.4.5 and on Win 8.1 x64 and Win 7 x86
38c38
< description: Install the Development Kit (JDK) or just the Java Runtime (JRE)
---
> description: Install the Development Kit (JDK) or just the Java Runtime (JRE).
65c65
< description: Toggle the Java-Updater and Update-Notifications
---
> description: Toggle the Java-Updater and Update-Notifications.
68a69,77
> [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"]
> 
69a79,88
> 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.
> 
> 
77c96
<   * NOTE: I´m using the JCE patch for Java 8, this work for Java 7 too (tested, no unwanted behaviour with SHA384, SHA512 and AES192, AES256)
---
>   * 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)

control

control.txt
[Package]
version: 4.2
depends: 
incremental: False
 
[Product]
type: localboot
id: java
name: Java
description: 
advice: Tested with Opsi 4.0.4.5 and on Win 8.1 x64 and Win 7 x86
version: 1.8.0.05.13
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.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

check_msi-exitcode.ins

check_msi-exitcode.ins
SetLogLevel = 1
Set $Temp_ExitCode$ = GetLastExitCode
Set $Temp_Message$ = ""
 
If ( $Temp_ExitCode$ = "0" Or $Temp_ExitCode$ ="1641" Or $Temp_ExitCode$ ="3010" )
	If ( $Temp_ExitCode$ = "0" )
		SetLogLevel = 5
		Comment ": " + $Temp_ExitCode$ + " Action completed successfully."
		SetLogLevel = 1
	EndIf
 
	If ( $Temp_ExitCode$ = "1641" )
		SetLogLevel = 5
		Comment ": " + $Temp_ExitCode$ + " ERROR_SUCCESS_REBOOT_INITIATED The installer has started a reboot. This error code Not available on Windows Installer version 1.0."
		SetLogLevel = 1
	EndIf
 
	If ( $Temp_ExitCode$ = "3010" )
		SetLogLevel = 5
		Comment ": " + $Temp_ExitCode$ + " ERROR_SUCCESS_REBOOT_REQUIRED A reboot is required to complete the install. This does Not include installs where the ForceReboot action is run. This error code Not available on Windows Installer version 1.0."
		SetLogLevel = 1
	EndIf
 
 
Else
 
 
	If ( $Temp_ExitCode$ = "13" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_DATA The data is invalid."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "87" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_PARAMETER One of the parameters was invalid."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "120" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_CALL_NOT_IMPLEMENTED This function is Not available For this platform. It is only available on Windows 2000 And Windows XP with Window Installer version 2.0."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1259" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_APPHELP_BLOCK This error code only occurs when using Windows Installer version 2.0 And Windows XP Or later. If Windows Installer determines a product may be incompatible with the current operating system, it displays a dialog informing the user And asking whether to try to install anyway. This error code is returned If the user chooses Not to try the installation."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1601" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_SERVICE_FAILURE The Windows Installer service could Not be accessed. Contact your support personnel to verify that the Windows Installer service is properly registered."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1602" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_USEREXIT User cancel installation."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1603" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_FAILURE Fatal error during installation."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1604" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_SUSPEND Installation suspended, incomplete."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1605" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_UNKNOWN_PRODUCT This action is only valid For products that are currently installed."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1606" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_UNKNOWN_FEATURE Feature ID Not registered."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1607" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_UNKNOWN_COMPONENT Component ID Not registered."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1608" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_UNKNOWN_PROPERTY Unknown property."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1609" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_HANDLE_STATE Handle is In an invalid state."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1610" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_BAD_CONFIGURATION The configuration data For this product is corrupt. Contact your support personnel."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1611" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INDEX_ABSENT Component qualifier Not present."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1612" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_SOURCE_ABSENT The installation source For this product is Not available. Verify that the source exists And that you can access it."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1613" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_VERSION This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1614" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PRODUCT_UNINSTALLED Product is uninstalled."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1615" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_BAD_QUERY_SYNTAX SQL query syntax invalid Or unsupported."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1616" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_FIELD Record field does Not exist."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1618" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_ALREADY_RUNNING Another installation is already In progress. Complete that installation before proceeding with this install."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1619" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_OPEN_FAILED This installation package could Not be opened. Verify that the package exists And that you can access it, Or contact the application vendor to verify that this is a valid Windows Installer package."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1620" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_INVALID This installation package could Not be opened. Contact the application vendor to verify that this is a valid Windows Installer package."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1621" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_UI_FAILURE There was an error starting the Windows Installer service user interface. Contact your support personnel."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1622" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_LOG_FAILURE Error opening installation log file. Verify that the specified log file location exists And is writable."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1623" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_LANGUAGE_UNSUPPORTED This language of this installation package is Not supported by your system."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1624" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_TRANSFORM_FAILURE Error applying transforms. Verify that the specified transform paths are valid."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1625" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_PACKAGE_REJECTED This installation is forbidden by system policy. Contact your system administrator."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1626" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_FUNCTION_NOT_CALLED Function could Not be executed."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1627" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_FUNCTION_FAILED Function failed during execution."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1628" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_TABLE Invalid Or unknown table specified."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1629" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_DATATYPE_MISMATCH Data supplied is of wrong type."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1630" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_UNSUPPORTED_TYPE Data of this type is Not supported."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1631" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_CREATE_FAILED The Windows Installer service failed to start. Contact your support personnel."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1632" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_TEMP_UNWRITABLE The temp folder is either full Or inaccessible. Verify that the temp folder exists And that you can write to it."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1633" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_PLATFORM_UNSUPPORTED This installation package is Not supported on this platform. Contact your application vendor."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1634" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_NOTUSED Component Not used on this machine"
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1635" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_OPEN_FAILED This patch package could Not be opened. Verify that the patch package exists And that you can access it, Or contact the application vendor to verify that this is a valid Windows Installer patch package."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1636" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_INVALID This patch package could Not be opened. Contact the application vendor to verify that this is a valid Windows Installer patch package."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1637" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_UNSUPPORTED This patch package cannot be processed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1638" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PRODUCT_VERSION Another version of this product is already installed. Installation of this version cannot continue. To configure Or remove the existing version of this product, use Add/Remove Programs on the Control Panel."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1639" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INVALID_COMMAND_LINE Invalid command line argument. Consult the Windows Installer SDK For detailed command line help."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1640" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_REMOTE_DISALLOWED Installation from a Terminal Server client session Not permitted For current user."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1642" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PATCH_TARGET_NOT_FOUND The installer cannot install the upgrade patch because the program being upgraded may be missing Or the upgrade patch updates a different version of the program. Verify that the program to be upgraded exists on your computer And that you have the correct upgrade patch. This error code is Not available on Windows Installer version 1.0."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1643" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_PATCH_PACKAGE_REJECTED The patch package is Not permitted by system policy. This error code is available with Windows Installer versions 2.0 Or later."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
 
	If ( $Temp_ExitCode$ = "1644" )
		SetLogLevel = 5
		Set $Temp_Message$ = ": " + $Temp_ExitCode$ + " ERROR_INSTALL_TRANSFORM_REJECTED One Or more customizations are Not permitted by system policy. This error code is available with Windows Installer versions 2.0 Or later."
		Message "Fatal error: " + $Temp_Message$
		LogError $Temp_Message$
		IsFatalError $Temp_Message$
	EndIf
EndIf
 
SetLogLevel = $DefaultLogLevel$

check_uninstal.ins

check_uninstal.ins
SetLogLevel = 2
 
For $x$ In $StringList_Java6$ Do Sub_Uninstall_6
For $x$ In $StringList_Java7$ Do Sub_Uninstall_7
For $x$ In $StringList_Java8$ Do Sub_Uninstall_8
 
SetLogLevel = $DefaultLogLevel$
 
; Reset changed variables
Sub "%ScriptPath%\Sub_UpdateVariables.ins"
 
[Sub_Uninstall_6]
Message "Search Java 6.0.$x$ x32"
If $ProcessorArchitecture$ = "x86 System"
	If ( "$x$" > "24" )
		Set $Temp_MsiSuffix$ = "FF"
	Else
		Set $Temp_MsiSuffix$ = "F0"
	EndIf
 
	Set $ProductDisplayName$ = GetRegistryStringValue ( "[" + $RegistryPath$ + "{26A24AE4-039D-4CA4-87B4-2F832160" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F832160" + "$x$" + $Temp_MsiSuffix$ + "}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
EndIf
 
If $ProcessorArchitecture$ = "64 Bit System"
	If ( "$x$" > "23" )
		Set $Temp_MsiSuffix$ = "FF"
	Else
		Set $Temp_MsiSuffix$ = "F0"
	EndIf
 
	Set $ProductDisplayName$ = GetRegistryStringValue32 ( "[" + $RegistryPath_x64$ + "{26A24AE4-039D-4CA4-87B4-2F832160" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F832160" + "$x$" + $Temp_MsiSuffix$ + "}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
 
	If ( "$x$" > "24" )
		Set $Temp_MsiSuffix$ = "FF"
	Else
		Set $Temp_MsiSuffix$ = "F0"
	EndIf
 
	Message "Search Java 6.0.$x$ x64"
	Set $ProductDisplayName$ = GetRegistryStringValue64 ( "[" + $RegistryPath$ + "{26A24AE4-039D-4CA4-87B4-2F864160" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F864160" + "$x$" + $Temp_MsiSuffix$ + "}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
EndIf
 
 
 
 
[Sub_Uninstall_7]
 
If ( "$x$" > "23" )
	Set $Temp_MsiSuffix$ = "FF"
Else
	Set $Temp_MsiSuffix$ = "F0"
EndIf
 
; It Seems this one does only affect Java 7 JRE x64 and x86
If ( "$x$" >= "60" )
	Set $Temp_MsiDiff01$ = "0"
Else
	Set $Temp_MsiDiff01$ = "8"
EndIf
 
 
Message "Search Java JDK 7.0.$x$ x32"
If $ProcessorArchitecture$ = "x86 System"
	Set $ProductDisplayName$ = GetRegistryStringValue ( "[" + $RegistryPath$ + "{32A3A4F4-B792-11D6-A78A-00B0D0170$x$0}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{32A3A4F4-B792-11D6-A78A-00B0D0170$x$0}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
EndIf
 
If $ProcessorArchitecture$ = "64 Bit System"
	Set $ProductDisplayName$ = GetRegistryStringValue32 ( "[" + $RegistryPath_x64$ + "{32A3A4F4-B792-11D6-A78A-00B0D0170$x$0}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{32A3A4F4-B792-11D6-A78A-00B0D0170$x$0}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
 
	Message "Search Java JDK 7.0.$x$ x64"
	Set $ProductDisplayName$ = GetRegistryStringValue64 ( "[" + $RegistryPath$ + "{64A3A4F4-B792-11D6-A78A-00B0D0170$x$0}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{64A3A4F4-B792-11D6-A78A-00B0D0170$x$0}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
EndIf
 
 
Message "Search Java JRE 7.0.$x$ x32"
If $ProcessorArchitecture$ = "x86 System"
	Set $ProductDisplayName$ = GetRegistryStringValue ( "[" + $RegistryPath$ + "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "32170" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "32170" + "$x$" + $Temp_MsiSuffix$ + "}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
EndIf
 
If $ProcessorArchitecture$ = "64 Bit System"
	Set $ProductDisplayName$ = GetRegistryStringValue32 ( "[" + $RegistryPath_x64$ + "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "32170" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "32170" + "$x$" + $Temp_MsiSuffix$ + "}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
 
	Message "Search Java 7.0.$x$ x64"
	Set $ProductDisplayName$ = GetRegistryStringValue64 ( "[" + $RegistryPath$ + "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "64170" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F" + $Temp_MsiDiff01$ + "64170" + "$x$" + $Temp_MsiSuffix$ + "}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
EndIf
 
 
 
 
[Sub_Uninstall_8]
 
; TODO check on every update
If ( "$x$" >= "00" )
	Set $Temp_MsiSuffix$ = "FF"
Else
	Set $Temp_MsiSuffix$ = "F0"
EndIf
 
Message "Search Java JDK 8.0.$x$ x32"
If $ProcessorArchitecture$ = "x86 System"
	Set $ProductDisplayName$ = GetRegistryStringValue ( "[" + $RegistryPath$ + "{32A3A4F4-B792-11D6-A78A-00B0D0180$x$0}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{32A3A4F4-B792-11D6-A78A-00B0D0180$x$0}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
EndIf
 
If $ProcessorArchitecture$ = "64 Bit System"
	Set $ProductDisplayName$ = GetRegistryStringValue32 ( "[" + $RegistryPath_x64$ +  "{32A3A4F4-B792-11D6-A78A-00B0D0180$x$0}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{32A3A4F4-B792-11D6-A78A-00B0D0180$x$0}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
 
	Message "Search Java JDK 8.0.$x$ x64"
	Set $ProductDisplayName$ = GetRegistryStringValue64 ( "[" + $RegistryPath$ + "{64A3A4F4-B792-11D6-A78A-00B0D0180$x$0}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{64A3A4F4-B792-11D6-A78A-00B0D0180$x$0}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
EndIf
 
 
Message "Search Java JRE 8.0.$x$ x32"
If $ProcessorArchitecture$ = "x86 System"
	Set $ProductDisplayName$ = GetRegistryStringValue ( "[" + $RegistryPath$ + "{26A24AE4-039D-4CA4-87B4-2F832180" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
			Message "Uninstall " + $ProductDisplayName$ + "..."
			Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F832180" + "$x$" + $Temp_MsiSuffix$ + "}"
			Sub "%ScriptPath%\delsub.ins"
	EndIf
EndIf
 
If $ProcessorArchitecture$ = "64 Bit System"
	Set $ProductDisplayName$ = GetRegistryStringValue32 ( "[" + $RegistryPath_x64$ + "{26A24AE4-039D-4CA4-87B4-2F832180" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F832180" + "$x$" + $Temp_MsiSuffix$ + "}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
 
	Message "Search Java JRE 8.0.$x$ x64"
	Set $ProductDisplayName$ = GetRegistryStringValue64 ( "[" + $RegistryPath$ + "{26A24AE4-039D-4CA4-87B4-2F864180" + "$x$" + $Temp_MsiSuffix$ + "}] DisplayName" )
	If Not ( $ProductDisplayName$ = "" )
		Message "Uninstall " + $ProductDisplayName$ + "..."
		Set $Temp_Msi$ = "{26A24AE4-039D-4CA4-87B4-2F864180" + "$x$" + $Temp_MsiSuffix$ + "}"
		Sub "%ScriptPath%\delsub.ins"
	EndIf
EndIf

setup.ins

setup.ins
[Initial]
SetLogLevel = 5
ExitOnError = True
ScriptErrorMessages = Off
TraceMode = Off
StayOnTop = False
 
[Actions]
RequiredWinstVersion >= "4.11.3"
Message "Prepare..."
DefStringList $StringList_Java6$
DefStringList $StringList_Java7$
DefStringList $StringList_Java8$
DefVar $Argument_Msi_AutoUpdateCheck$
DefVar $Argument_Msi_IExplorer$
DefVar $Argument_Msi_Ju$
DefVar $Argument_Msi_Mozilla$
DefVar $Argument_Msi_SysTray$
DefVar $Arguments_Exe$
DefVar $Arguments_Msi$
DefVar $DefaultLogLevel$
DefVar $IsUninstall$
DefVar $MicrosoftWindowsVersion$
DefVar $MinimumSpace$
DefVar $PathSetup_Data$
DefVar $PathSetup_Exe32$
DefVar $PathSetup_Exe64$
DefVar $PathSetup_Msi32$
DefVar $ProcessorArchitecture$
DefVar $ProductDisplayName$
DefVar $ProductDisplayVersion$
DefVar $ProductDisplayVersion_x32$
DefVar $ProductDisplayVersion_x64$
DefVar $ProductName$
DefVar $ProductProperty_Java-Updater$
DefVar $ProductProperty_Version$
DefVar $ProductProperty_VM-Type$
DefVar $ProductProperty_WebJava$
DefVar $ProductProperty_WebJava-Security_Level$
DefVar $ProductProperty_32bitOnly$
DefVar $ProductVersion$
DefVar $RegistryPath$
DefVar $RegistryPath_x64$
DefVar $Temp_ExitCode$
DefVar $Temp_Message$
DefVar $Temp_MicrosoftWindowsVersionRequired$
DefVar $Temp_MicrosoftWindowsVersionRequiredName$
DefVar $Temp_Msi$
DefVar $Temp_MsiSuffix$
DefVar $Temp_MsiDiff01$
DefVar $UninstallCommand$
DefVar $UpdateVersion7$
DefVar $UpdateVersion8$
 
Set $ProductName$ = "Java"
 
; https://en.wikipedia.org/wiki/Java_version_history#Java_6_updates
Set $StringList_Java6$ = CreateStringList ( '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '43', '45', '51', '65', '71', '75' )
 
; https://en.wikipedia.org/wiki/Java_version_history#Java_7_updates
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' )
 
; https://en.wikipedia.org/wiki/Java_version_history#Java_8_updates
Set $StringList_Java8$ = CreateStringList ( '00', '05' )
 
; Get last update version
Set $UpdateVersion7$ = TakeString ( -1, $StringList_Java7$ )
Set $UpdateVersion8$ = TakeString ( -1, $StringList_Java8$ )
 
Set $DefaultLogLevel$						= "5"
Set $IsUninstall$							= "False"
Set $MicrosoftWindowsVersion$				= GetMsVersionInfo
Set $MinimumSpace$						= "248 MB"
Set $PathSetup_Data$						= "%ScriptPath%\setup_data\"
Set $ProcessorArchitecture$					= GetSystemType
Set $ProductProperty_Java-Updater$				= GetProductProperty ( "Java-Updater"			, "Off"		)
Set $ProductProperty_VM-Type$				= GetProductProperty ( "VM-Type"					, "jre"		)
Set $ProductProperty_Version$				= GetProductProperty ( "Version"					, "7"		)
Set $ProductProperty_WebJava$				= GetProductProperty ( "WebJava"					, "On"		)
Set $ProductProperty_WebJava-Security_Level$	= GetProductProperty ( "WebJava-Security_Level"	, "VH"		)
Set $ProductProperty_32bitOnly$				= GetProductProperty ( "32bitOnly"				, "False"	)
Set $RegistryPath$							= "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
Set $RegistryPath_x64$						= "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\"
Set $Temp_MsiSuffix$						= ""
 
; Reset changed variables
Sub "%ScriptPath%\Sub_UpdateVariables.ins"
 
; Parse selected ProductPropertys and generate installation argument list
If $ProductProperty_WebJava$ = "On"
	Set $ProductProperty_WebJava$ = "WEB_JAVA=1"
	Set $Argument_Msi_IExplorer$ = "IEXPLORER=1"
	Set $Argument_Msi_Mozilla$ = "MOZILLA=1"
Else
	Set $ProductProperty_WebJava$ = "WEB_JAVA=0"
	Set $Argument_Msi_IExplorer$ = "IEXPLORER=0"
	Set $Argument_Msi_Mozilla$ = "MOZILLA=0"
EndIf
 
If $ProductProperty_WebJava-Security_Level$ = "M"
	Set $ProductProperty_WebJava-Security_Level$ = "WEB_JAVA_SECURITY_LEVEL=M"
EndIf
If $ProductProperty_WebJava-Security_Level$ = "H"
	Set $ProductProperty_WebJava-Security_Level$ = "WEB_JAVA_SECURITY_LEVEL=H"
EndIf
If $ProductProperty_WebJava-Security_Level$ = "VH"
	Set $ProductProperty_WebJava-Security_Level$ = "WEB_JAVA_SECURITY_LEVEL=VH"
EndIf
 
If $ProductProperty_Java-Updater$ = "On"
	Set $Argument_Msi_SysTray$ = "SYSTRAY=1"
	Set $ProductProperty_Java-Updater$ = "JAVAUPDATE=1"
	Set $Argument_Msi_Ju$ = "JU=1"
	Set $Argument_Msi_AutoUpdateCheck$ = "AUTOUPDATECHECK=1"
Else
	Set $Argument_Msi_SysTray$ = "SYSTRAY=0"
	Set $ProductProperty_Java-Updater$ = "JAVAUPDATE=0"
	Set $Argument_Msi_Ju$ = "JU=0"
	Set $Argument_Msi_AutoUpdateCheck$ = "AUTOUPDATECHECK=0"
EndIf
 
Set $Arguments_Exe$ = "/s " + $ProductProperty_WebJava$ + " " + $ProductProperty_WebJava-Security_Level$ + " STATIC=0"
Set $Arguments_Msi$ = "/qb! REBOOT=ReallySuppess " + $Argument_Msi_IExplorer$ + " " + $Argument_Msi_Mozilla$ + " " + $Argument_Msi_SysTray$ + " " + $ProductProperty_Java-Updater$ + " " + $Argument_Msi_Ju$ + " " + $Argument_Msi_AutoUpdateCheck$
 
ShowBitMap "%ScriptPath%\java.png" $ProductName$
SetLogLevel = $DefaultLogLevel$
 
If $ProductProperty_Version$ = "7"
	Set $Temp_MicrosoftWindowsVersionRequired$ = "5.1"
	Set $Temp_MicrosoftWindowsVersionRequiredName$ = "XP"
Else
	Set $Temp_MicrosoftWindowsVersionRequired$ = "6.0"
	Set $Temp_MicrosoftWindowsVersionRequiredName$ = "Vista"
EndIf
If $MicrosoftWindowsVersion$ < $Temp_MicrosoftWindowsVersionRequired$
	Message "Fatal error: Minimum Windows " + $Temp_MicrosoftWindowsVersionRequiredName$ + " is required for " + $ProductName$ + " " + $ProductProperty_Version$
	LogError "Minimum Windows " + $Temp_MicrosoftWindowsVersionRequiredName$ + " is required for " + $ProductName$ + " " + $ProductProperty_Version$
	IsFatalError "Minimum Windows " + $Temp_MicrosoftWindowsVersionRequiredName$ + " is required For " + $ProductName$ + " " + $ProductProperty_Version$
EndIf
 
If Not ( HasMinimumSpace ( "%SystemDrive%", $MinimumSpace$ ) )
	Message "Fatal error: Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductName$
	LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductName$
	IsFatalError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed For " + $ProductName$
EndIf
 
Sub "%ScriptPath%\check_uninstall.ins"
 
KillTask "firefox.exe"
KillTask "iexplore.exe"
KillTask "chrome.exe"
KillTask "jqs.exe"
KillTask "java.exe"
KillTask "javaw.exe"
 
; #############################################################################################################################################
; ################################################################### Install x64 ###################################################################
; #############################################################################################################################################
 
If $ProcessorArchitecture$ = "64 Bit System"
	If $ProductProperty_32bitOnly$ = "False"
		Message "Install " + $ProductDisplayVersion_x64$
		If FileExists ( $PathSetup_Data$ + $PathSetup_Exe64$ )
			SetLogLevel = 6
			WinBatch_install_x64 /WaitOnClose
			SetLogLevel = 1
			Sub "%ScriptPath%\check_msi-exitcode.ins"
		Else
			Message "Fatal error: File not found: " + $PathSetup_Data$ + $PathSetup_Exe64$
			LogError "File not found: " + $PathSetup_Data$ + $PathSetup_Exe64$
			IsFatalError "File not found: " + $exePath$ + $exe_64$
		EndIf
 
		If $ProductProperty_Java-Updater$ = "JAVAUPDATE=0"
			Registry_disable_update /64Bit
		EndIf
	EndIf
 
	Message "Install " + $ProductDisplayVersion_x32$ + " first try"
	If FileExists ( $PathSetup_Data$ + $PathSetup_Exe32$ )
		SetLogLevel = 6
		WinBatch_install_x86 /WaitOnClose
		SetLogLevel = $DefaultLogLevel$
	Else
		LogWarning "File not found: " + $exePath$ + $exe_32$
	EndIf
 
	; Installation of Java x86 at a x64 system envirement does "fail", because the java x86 installer seems NOT to be designed to be executed In a SYSTEM "user" conetxt.
	Set $Temp_ExitCode$ = GetLastExitCode
	If $Temp_ExitCode$ = "1619"
		Comment "ExitCode = " + $Temp_ExitCode$ + ' ERROR_INSTALL_PACKAGE_OPEN_FAILED; This is what we expected, so its a "good" sign.'
		SetLogLevel = 5
		Files_delete_broken_x86_x64 /32Bit
		SetLogLevel = 1
 
		Message "Install " + $ProductDisplayVersion_x32$ + " second try"
		If $ProductProperty_VM-Type$ = "jdk"
			If FileExists ( $PathSetup_Data$ + $PathSetup_Msi32$ )
				SetLogLevel = 6
				WinBatch_install_x86_64_UseMSI /WaitOnClose
				SetLogLevel = 1
				Sub "%ScriptPath%\check_msi-exitcode.ins"
			Else
				Message "Fatal error: File not found: " + $PathSetup_Data$ + $PathSetup_Msi32$
				LogError "File not found: " + $PathSetup_Data$ + $PathSetup_Msi32$
				IsFatalError "File not found: " + $exePath$ + $msi32$
			EndIf
		EndIf
 
		; Explicit install Java x86, because in this situation the Java Installer (MSI) only install the jdk And for some reason it does NOT install the jre :(
		Set $PathSetup_Msi32$ = "msi\jre" + $ProductVersion$ + "\jre" + $ProductVersion$ + ".msi"
		If FileExists ( $PathSetup_Data$ + $PathSetup_Msi32$ )
			SetLogLevel = 6
			WinBatch_install_x86_64_UseMSI /WaitOnClose
			SetLogLevel = 1
			Sub "%ScriptPath%\check_msi-exitcode.ins"
		Else
			Message "Fatal error: File not found: " + $PathSetup_Data$ + $PathSetup_Msi32$
			LogError "File not found: " + $PathSetup_Data$ + $PathSetup_Msi32$
			IsFatalError "File not found: " + $PathSetup_Data$ + $PathSetup_Msi32$
		EndIf
 
		; Reset changed variables
		Sub "%ScriptPath%\Sub_UpdateVariables.ins"
	Else
		Sub "%ScriptPath%\check_msi-exitcode.ins"
	EndIf
	If $ProductProperty_Java-Updater$ = "JAVAUPDATE=0"
		Registry_disable_update /32Bit
	EndIf
EndIf
 
; #############################################################################################################################################
; ################################################################### Install x32 ###################################################################
; #############################################################################################################################################
 
If $ProcessorArchitecture$ = "x86 System"
        Message "Install " + $ProductDisplayVersion_x32$
		If FileExists ( $PathSetup_Data$ + $PathSetup_Exe32$ )
			SetLogLevel = 6
			WinBatch_install_x86 /WaitOnClose
			SetLogLevel = 1
			Sub "%ScriptPath%\check_msi-exitcode.ins"
		Else
			Message "Fatal error: File not found: " + $PathSetup_Data$ + $PathSetup_Exe32$
			LogError "File not found: " + $PathSetup_Data$ + $PathSetup_Exe32$
			IsFatalError "File not found: " + $PathSetup_Data$ + $PathSetup_Exe32$
		EndIf
		If $ProductProperty_Java-Updater$ = "JAVAUPDATE=0"
			Registry_disable_update /32Bit
		EndIf
EndIf
 
; Patch JCE
If $ProcessorArchitecture$ = "64 Bit System" And $ProductProperty_32bitOnly$ = "False"
	If FileExists ( "%ProgramFiles64Dir%\Java\jre" + $ProductProperty_Version$ + "\bin\java.exe" )
		Message "Apply patch For JCE (Java Cryptography Extension)"
		If $ProductProperty_VM-Type$ = "jdk" And FileExists ( "%ProgramFiles64Dir%\Java\jdk" + $ProductVersion$ + "\bin\javac.exe" )
			Files_patch_JCE_JDK_x64
		EndIf
		If $ProductProperty_VM-Type$ = "jdk" And ( Not ( FileExists ( "%ProgramFiles64Dir%\Java\jdk" + $ProductVersion$ + "\bin\javac.exe" ) ) )
			LogWarning "NOT Patching JCE for x64 JDK; File not found: %ProgramFiles64Dir%\Java\jdk" + $ProductVersion$ + "\bin\javac.exe"
		EndIf
		Files_patch_JCE_JRE_x64
	Else
		LogWarning "NOT Patching JCE for x64 JRE and JDK; File not found: %ProgramFiles64Dir%\Java\jre" + $ProductProperty_Version$ + "\bin\java.exe"
	EndIf
EndIf
 
If FileExists ( "%ProgramFiles32Dir%\Java\jre" + $ProductProperty_Version$ + "\bin\java.exe" )
	Message "Apply patch For JCE (Java Cryptography Extension)"
	If $ProductProperty_VM-Type$ = "jdk" And FileExists ( "%ProgramFiles32Dir%\Java\jdk" + $ProductVersion$ + "\bin\javac.exe" )
		Files_patch_JCE_JDK_x86
	EndIf
	If $ProductProperty_VM-Type$ = "jdk" And ( Not ( FileExists ( "%ProgramFiles32Dir%\Java\jdk" + $ProductVersion$ + "\bin\javac.exe" ) ) )
		LogWarning "NOT Patching JCE for x86 JDK; File not found: %ProgramFiles32Dir%\Java\jdk" + $ProductVersion$ + "\bin\javac.exe"
	EndIf
	Files_patch_JCE_JRE_x86
Else
	LogWarning "NOT Patching JCE for x86 JRE and JDK; File not found: %ProgramFiles32Dir%\Java\jre" + $ProductProperty_Version$ + "\bin\java.exe"
EndIf
 
Message "Install complete"
 
 
[WinBatch_install_x86_64_UseMSI]
msiexec /i "$PathSetup_Data$$PathSetup_Msi32$" $Arguments_Msi$
 
[WinBatch_install_x86]
"$PathSetup_Data$$PathSetup_Exe32$" $Arguments_Exe$
 
[WinBatch_install_x64]
"$PathSetup_Data$$PathSetup_Exe64$" $Arguments_Exe$
 
[Files_delete_broken_x86_x64]
Delete -f -s "%ProgramFiles32Dir%\Java"
 
[Registry_disable_update]
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy]
Set "EnableJavaUpdate"=REG_DWORD:0
 
[Files_patch_JCE_JDK_x86]
Copy -s "%ScriptPath%\UnlimitedJCEPolicy\*.*" "%ProgramFiles32Dir%\Java\jdk$ProductVersion$\jre\lib\security"
 
[Files_patch_JCE_JDK_x64]
Copy -s "%ScriptPath%\UnlimitedJCEPolicy\*.*" "%ProgramFiles64Dir%\Java\jdk$ProductVersion$\jre\lib\security"
 
[Files_patch_JCE_JRE_x86]
Copy -s "%ScriptPath%\UnlimitedJCEPolicy\*.*" "%ProgramFiles32Dir%\Java\jre$ProductProperty_Version$\lib\security"
 
[Files_patch_JCE_JRE_x64]
Copy -s "%ScriptPath%\UnlimitedJCEPolicy\*.*" "%ProgramFiles64Dir%\Java\jre$ProductProperty_Version$\lib\security"

Sub_UpdateVariables.ins

Sub_UpdateVariables.ins
[Initial]
SetLogLevel = 5
ExitOnError = True
ScriptErrorMessages = Off
TraceMode = Off
StayOnTop = False
 
[Actions]
RequiredWinstVersion >= "4.11.3"
Message "Prepare..."
DefStringList $StringList_Java6$
DefStringList $StringList_Java7$
DefStringList $StringList_Java8$
DefVar $Argument_Msi_AutoUpdateCheck$
DefVar $Argument_Msi_IExplorer$
DefVar $Argument_Msi_Ju$
DefVar $Argument_Msi_Mozilla$
DefVar $Argument_Msi_SysTray$
DefVar $Arguments_Exe$
DefVar $Arguments_Msi$
DefVar $DefaultLogLevel$
DefVar $IsUninstall$
DefVar $MicrosoftWindowsVersion$
DefVar $MinimumSpace$
DefVar $PathSetup_Data$
DefVar $PathSetup_Exe32$
DefVar $PathSetup_Exe64$
DefVar $PathSetup_Msi32$
DefVar $ProcessorArchitecture$
DefVar $ProductDisplayName$
DefVar $ProductDisplayVersion$
DefVar $ProductDisplayVersion_x32$
DefVar $ProductDisplayVersion_x64$
DefVar $ProductName$
DefVar $ProductProperty_Java-Updater$
DefVar $ProductProperty_Version$
DefVar $ProductProperty_VM-Type$
DefVar $ProductProperty_WebJava$
DefVar $ProductProperty_WebJava-Security_Level$
DefVar $ProductProperty_32bitOnly$
DefVar $ProductVersion$
DefVar $RegistryPath$
DefVar $RegistryPath_x64$
DefVar $Temp_ExitCode$
DefVar $Temp_Message$
DefVar $Temp_MicrosoftWindowsVersionRequired$
DefVar $Temp_MicrosoftWindowsVersionRequiredName$
DefVar $Temp_Msi$
DefVar $Temp_MsiSuffix$
DefVar $Temp_MsiDiff01$
DefVar $UninstallCommand$
DefVar $UpdateVersion7$
DefVar $UpdateVersion8$
 
Set $ProductName$ = "Java"
 
; https://en.wikipedia.org/wiki/Java_version_history#Java_6_updates
Set $StringList_Java6$ = CreateStringList ( '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '43', '45', '51', '65', '71', '75' )
 
; https://en.wikipedia.org/wiki/Java_version_history#Java_7_updates
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' )
 
; https://en.wikipedia.org/wiki/Java_version_history#Java_8_updates
Set $StringList_Java8$ = CreateStringList ( '00', '05' )
 
; Get last update version
Set $UpdateVersion7$ = TakeString ( -1, $StringList_Java7$ )
Set $UpdateVersion8$ = TakeString ( -1, $StringList_Java8$ )
 
Set $DefaultLogLevel$						= "5"
Set $IsUninstall$							= "False"
Set $MicrosoftWindowsVersion$				= GetMsVersionInfo
Set $MinimumSpace$						= "248 MB"
Set $PathSetup_Data$						= "%ScriptPath%\setup_data\"
Set $ProcessorArchitecture$					= GetSystemType
Set $ProductProperty_Java-Updater$				= GetProductProperty ( "Java-Updater"			, "Off"		)
Set $ProductProperty_VM-Type$				= GetProductProperty ( "VM-Type"					, "jre"		)
Set $ProductProperty_Version$				= GetProductProperty ( "Version"					, "7"		)
Set $ProductProperty_WebJava$				= GetProductProperty ( "WebJava"					, "On"		)
Set $ProductProperty_WebJava-Security_Level$	= GetProductProperty ( "WebJava-Security_Level"	, "VH"		)
Set $ProductProperty_32bitOnly$				= GetProductProperty ( "32bitOnly"				, "True"	)
Set $RegistryPath$							= "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
Set $RegistryPath_x64$						= "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\"
Set $Temp_MsiSuffix$						= ""
 
; Reset changed variables
Sub "%ScriptPath%\Sub_UpdateVariables.ins"
 
; Parse selected ProductPropertys and generate installation argument list
If $ProductProperty_WebJava$ = "On"
	Set $ProductProperty_WebJava$ = "WEB_JAVA=1"
	Set $Argument_Msi_IExplorer$ = "IEXPLORER=1"
	Set $Argument_Msi_Mozilla$ = "MOZILLA=1"
Else
	Set $ProductProperty_WebJava$ = "WEB_JAVA=0"
	Set $Argument_Msi_IExplorer$ = "IEXPLORER=0"
	Set $Argument_Msi_Mozilla$ = "MOZILLA=0"
EndIf
 
If $ProductProperty_WebJava-Security_Level$ = "M"
	Set $ProductProperty_WebJava-Security_Level$ = "WEB_JAVA_SECURITY_LEVEL=M"
EndIf
If $ProductProperty_WebJava-Security_Level$ = "H"
	Set $ProductProperty_WebJava-Security_Level$ = "WEB_JAVA_SECURITY_LEVEL=H"
EndIf
If $ProductProperty_WebJava-Security_Level$ = "VH"
	Set $ProductProperty_WebJava-Security_Level$ = "WEB_JAVA_SECURITY_LEVEL=VH"
EndIf
 
If $ProductProperty_Java-Updater$ = "On"
	Set $Argument_Msi_SysTray$ = "SYSTRAY=1"
	Set $ProductProperty_Java-Updater$ = "JAVAUPDATE=1"
	Set $Argument_Msi_Ju$ = "JU=1"
	Set $Argument_Msi_AutoUpdateCheck$ = "AUTOUPDATECHECK=1"
Else
	Set $Argument_Msi_SysTray$ = "SYSTRAY=0"
	Set $ProductProperty_Java-Updater$ = "JAVAUPDATE=0"
	Set $Argument_Msi_Ju$ = "JU=0"
	Set $Argument_Msi_AutoUpdateCheck$ = "AUTOUPDATECHECK=0"
EndIf
 
Set $Arguments_Exe$ = "/s " + $ProductProperty_WebJava$ + " " + $ProductProperty_WebJava-Security_Level$ + " STATIC=0"
Set $Arguments_Msi$ = "/qb! REBOOT=ReallySuppess " + $Argument_Msi_IExplorer$ + " " + $Argument_Msi_Mozilla$ + " " + $Argument_Msi_SysTray$ + " " + $ProductProperty_Java-Updater$ + " " + $Argument_Msi_Ju$ + " " + $Argument_Msi_AutoUpdateCheck$
 
ShowBitMap "%ScriptPath%\java.png" $ProductName$
SetLogLevel = $DefaultLogLevel$
 
Sub "%ScriptPath%\check_uninstall.ins"
 
Message "Uninstall complete"
userspace/java-ng.1402872774.txt.gz · Last modified: 2021/08/23 08:37 (external edit)