Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
f851bb1
Moving from local work to gh repo
jmjaffe37 Aug 12, 2025
cbe008d
cleanup
jmjaffe37 Aug 12, 2025
f5f9695
More parameterizing + cleanup. Also, added CreateEXE.ps1
jmjaffe37 Aug 12, 2025
4160f1d
Ensured that upgrading and signing work as expected
jmjaffe37 Aug 13, 2025
d16fce5
Fixed powershell formatting and typos, cleaned up comments
jmjaffe37 Aug 13, 2025
1249c69
Added inno_setup/ folders to .gitignore
jmjaffe37 Aug 13, 2025
fd4891a
Updated default icons to be adoptium
jmjaffe37 Aug 13, 2025
7a5cf6c
Now able to set root dir, fixed spelling + grammar
jmjaffe37 Aug 13, 2025
1ddbb6d
Fixed more comment typos, and one french typo
jmjaffe37 Aug 13, 2025
2c2c61e
Removed old comments + sections, added new comment links to docs
jmjaffe37 Aug 13, 2025
d9e9103
Now using input params for .iss, removed templates folder
jmjaffe37 Aug 14, 2025
da0ba36
Now able to set different URLs for each URL case
jmjaffe37 Aug 14, 2025
ad551bf
Updated product displayName to hide redundancy
jmjaffe37 Aug 14, 2025
5a94666
Added translation file customization
jmjaffe37 Aug 14, 2025
6feb3aa
Enabled toggle for unofficial translations, fixed uninstall icon
jmjaffe37 Aug 14, 2025
dffe336
Ensured that tool both when signing and not signing. Fixed 'Installed…
jmjaffe37 Aug 15, 2025
71a28eb
Updated comments and uninstallDir
jmjaffe37 Aug 15, 2025
ed9927e
Updated header comments
jmjaffe37 Sep 9, 2025
26625ce
Now limiting installation criteria by architecture
jmjaffe37 Oct 6, 2025
2be58dd
Fixed code order, now only choosing spoken lang if exe can't find def…
jmjaffe37 Oct 7, 2025
8d5cd49
Now doing verysilent uninstallation during version upgrade
jmjaffe37 Oct 23, 2025
d6f67ad
Fixed formatting and removed old comments
jmjaffe37 Oct 23, 2025
d711260
Now checking if version is same or newer at startup
jmjaffe37 Oct 23, 2025
7952f81
Updated version comparison and removed & from starting text
jmjaffe37 Oct 23, 2025
cc8d237
Moved functions to new helpers file
jmjaffe37 Oct 23, 2025
0127b35
Using new png support, fixed version check dialogs, now allowing all …
jmjaffe37 Oct 24, 2025
50a8f50
Updated formatting
jmjaffe37 Oct 24, 2025
6ae5ffa
Now using name for env task
jmjaffe37 Oct 31, 2025
8148d38
Updated 'jarfileMod' task to 'FeatureJarFileRunWith'
jmjaffe37 Oct 31, 2025
331c731
Updated 'javaHomeMod' to 'FeatureJavaHome'
jmjaffe37 Oct 31, 2025
c8d0857
Updated 'javasoftMod' to 'FeatureOracleJavaSoft'
jmjaffe37 Oct 31, 2025
6c08534
Fixed unofficial translations bug, added spacing
jmjaffe37 Oct 31, 2025
e9f29f4
Testing MSI installation detection
jmjaffe37 Nov 5, 2025
41178de
Updated upgrade code translator
jmjaffe37 Nov 5, 2025
d919ca5
Added debug msgbox for MSI detection
jmjaffe37 Nov 5, 2025
3ab659d
Fixed MSI dectection + uninstallation, added MsgBox warning
jmjaffe37 Nov 5, 2025
ea705c7
Updated comments
jmjaffe37 Nov 5, 2025
0a332f1
Updated function name
jmjaffe37 Nov 5, 2025
541980f
Updated another function name
jmjaffe37 Nov 5, 2025
ddac017
Now ensuring that JavaSoft reg key CurrentVersion is always highes LT…
jmjaffe37 Nov 6, 2025
259efd1
Updated comments
jmjaffe37 Nov 6, 2025
3272aa4
Fixed typos, added comment
jmjaffe37 Nov 6, 2025
f911027
Updated default inputs and casing
jmjaffe37 Nov 6, 2025
819f59b
Updated install_handler to be able to uninstall MSIs in all cases
jmjaffe37 Nov 6, 2025
d6fab07
Updated func name
jmjaffe37 Nov 7, 2025
5a9e9f8
Updated comments
jmjaffe37 Nov 11, 2025
2dfc634
Added a README.md
jmjaffe37 Dec 6, 2025
d6cc7b7
Update inno_setup/inno_scripts/uninstall_handler.iss
jmjaffe37 Dec 16, 2025
0005f20
Removed blank space
jmjaffe37 Jan 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,7 @@ Thumbs.db

node_modules/
wix/Workdir/

inno_setup/output/
inno_setup/src/
inno_setup/workspace/
387 changes: 387 additions & 0 deletions inno_setup/CreateExe.ps1

Large diffs are not rendered by default.

112 changes: 112 additions & 0 deletions inno_setup/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# Introduction
This tool is designed to create EXE files which are modern and accessibility-friendly. This EXE format provides a reliable and user-friendly installation experience, including a graphical installer interface that achieves the highest standards for accessibility. When installed, the folder `jdk-${ExeProductVersion}-${JVM}` is placed at `C:\Program Files\${Vendor}\` (for machine-wide installs), or `C:\Users\${env:USERNAME}\AppData\Local\Programs\${Vendor}\` (for user installs).

# How to create EXE files

## Dependencies
The following files are required in order to successfully run `CreateExe.ps1`.
- Inno Setup:
- Main download page: https://jrsoftware.org/isdl.php
- Direct download link: https://jrsoftware.org/download.php/is.exe?site=1
- Note: by default, the compiler is downloaded to the path `C:\Program Files (x86)\Inno Setup 6\ISCC.exe`. If Inno Setup is installed to another path, you will need to set `$env:INNO_SETUP_PATH` to this new path.

## Creating EXE files through CreateExe.ps1
Please take a look at the [Dependencies](#dependencies) section above to make sure that you have everything needed in order to run our `CreateExe.ps1` script successfully. In this section, you will find a few examples for how to run our script from a powershell terminal.

For more information on each variable, use the `powershell` command `Get-Help -Detailed .\CreateExe.ps1` or see the `powershell` style header within `inno_setup\CreateExe.ps1`

**First Example**: Running with all required + optional inputs. Below, you will see the inputs divided into sections: required, optional with a default value (shown below), and optional + changes behavior if omitted. This example builds an Eclipse Temurin EXE file for jdk `21.0.8+9`
```powershell
.\CreateExe.ps1 `
# Mandatory inputs
-ZipFileUrl "https://example.com/file.zip" ` # You can use either ZipFileUrl or ZipFilePath, not both
-ProductMajorVersion 21 `
-ProductMinorVersion 0 `
-ProductMaintenanceVersion 8 `
-ProductPatchVersion 0 `
-ProductBuildNumber 9 `
-ExeProductVersion "21.0.8.9" `
-Arch "aarch64" `
-JVM "hotspot" `
-ProductCategory "jdk" `
# Optional inputs: These are the defaults that will be used if not specified
-AppName "Eclipse Temurin JDK with Hotspot 21.0.8+9 (aarch64)" `
-Vendor "Eclipse Adoptium" `
-VendorBranding "Eclipse Temurin" `
-VendorBrandingLogo "logos\logo.ico" `
-VendorBrandingDialog "logos\welcome-dialog.png" `
-VendorBrandingSmallIcon "logos\logo-small.png" `
-ProductPublisherLink "https://adoptium.net" `
-ProductSupportLink "https://adoptium.net/support" `
-ProductUpdateInfoLink "https://adoptium.net/temurin/releases" `
-OutputFileName "OpenJDK21-jdk_aarch64_windows_hotspot-21.0.8.0.9" `
-License "licenses/license-GPLv2+CE.en-us.rtf" `
-UpgradeCodeSeed "MySecretSeedCode(SameAsWix)" `
-TranslationFile "translations/default.iss" `
# Additional Optional Inputs: Omitting these inputs will cause their associated process to be skipped
-IncludeUnofficialTranslations "true" `
-SigningCommand "signtool.exe sign /f C:\path\to\cert" # For more explanation, see: https://jrsoftware.org/ishelp/index.php?topic=setup_signtool
```

**Second Example**: Running with only required inputs. This will produce an EXE file, but many values (ex: OutputFileName) will take the default Eclipse/Adoptium value. Note: either `-ZipFilePath` or `-ZipFileUrl` are required inputs, but you cannot specify both. This example builds an Eclipse Temurin EXE file for jdk `17.0.16+8`
```powershell
.\CreateExe.ps1 `
-ZipFilePath "C:\path\to\file.zip" ` # You can use either ZipFileUrl or ZipFilePath, not both
-ProductMajorVersion 17 `
-ProductMinorVersion 0 `
-ProductMaintenanceVersion 16 `
-ProductPatchVersion 0 `
-ProductBuildNumber 8 `
-ExeProductVersion "17.0.16.8" `
-Arch "x64" `
-JVM "hotspot" `
-ProductCategory "jdk"
```

### Sign EXE file
Here you can either sign during compilation (recommended) or after compilation. To sign during compilation, you will need to pass in a formatted CLI command as the value to the `SigningCommand` variable when running `CreateExe.ps1`. <u>Signing during compilation is recommended</u> as it is the only way to ensure that the uninstall script (packaged within the EXE) is also signed by you. For more information on how to format the input to `SigningCommand`, see: https://jrsoftware.org/ishelp/index.php?topic=setup_signtool

While not recommended, you can choose not to use the `SigningCommand` input and instead manually sign the resulting EXE file after compilation is completed.

> [!WARNING]
> If you do not use the `SigningCommand` to sign during compilation, then the uninstall script (packaged within your EXE) will not be signed. In this case, if the user attempts to uninstall your OpenJDK, they will be warned that they are about to run a program from an unknown vendor.


Example input to `SigningCommand`:
```powershell
-SigningCommand signtool.exe sign /a /n $qMy Common Name$q /t http://timestamp.comodoca.com/authenticode /d $qMy Program$q $f
```

# Using EXE files

## Install using EXE file
To install via UI, simply double-click on the EXE installer file and follow the instructions in the setup wizard.

To install via CLI, follow these steps:
1. Choose the features you want to install from the following table:

| Feature | Description |
|-------------------------|----------------------------------------------------------|
| `FeatureEnvironment` | Update the `PATH` environment variable. (DEFAULT) |
| `FeatureJarFileRunWith` | Associate *.jar* files with Java applications. (DEFAULT) |
| `FeatureJavaHome` | Update the `JAVA_HOME` environment variable. |
| `FeatureOracleJavaSoft` | Updates registry keys `HKLM\SOFTWARE\JavaSoft\`. |

> [!NOTE]
> You can use `FeatureOracleJavaSoft` to prevent Oracle Java from launching from PATH when the Microsoft Build of OpenJDK is uninstalled. Reinstall Oracle Java if you need to restore the Oracle registry keys.

2. Run the EXE file from the command line. Use the selected features, as shown in the following example.

```cmd
.\<package>.exe /SILENT /SUPPRESSMSGBOXES /ALLUSERS /TASKS="FeatureEnvironment,FeatureJarFileRunWith" /DIR="C:\Program Files\Microsoft\"
```

> [!NOTE]
> If installing for only the current user, use the flag `/CURRENTUSER` instead of `/ALLUSERS`.
>
> To suppress the progress bar screen of the installation, use the flag `/VERYSILENT` instead of `/SILENT`.
>
> The `/DIR` flag is optional. If omitted, the default installation directory is used based on the installation mode: `/ALLUSERS` or `/CURRENTUSER`.

## Uninstall EXE file
To uninstall the OpenJDK, open your Windows settings and navigate to `Apps > Installed Apps`. Search for the name of the OpenJDK that was installed. Once located, click on the `...` on the right-hand side of the entry and select `Uninstall` from the dropdown menu. A UI uninstaller will appear; follow the remaining instructions.
199 changes: 199 additions & 0 deletions inno_setup/create_exe.template.iss
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
;------------------------------------------------------------------------------
; This Inno Setup script file is used to configure the installation process
; for the specified application. It defines the setup parameters, files to be
; installed, registry modifications, shortcuts, and other installation tasks.
; Modify this file to customize the installer behavior and options.
;------------------------------------------------------------------------------

; Define useful variables based off inputs
#define OutputDir "output"
#define IniFile '{app}\install_tasks.ini'

; Include code helper scripts
#include "inno_scripts\install_handler.iss"
#include "inno_scripts\uninstall_handler.iss"
#include "inno_scripts\boolean_checks.iss"

[Setup]
; For more info, see https://jrsoftware.org/ishelp/index.php?topic=setupsection

;; Inno settings
#ifdef signFiles
SignTool=signingCommand
#endif
Uninstallable=yes
Compression=lzma
SolidCompression=yes
WizardStyle=modern
; Specify the architectures that the installer supports (e.g., x86compatible, x64os, x64compatible,arm64, etc.)
; See this link to learn more: https://jrsoftware.org/ishelp/index.php?topic=archidentifiers
ArchitecturesAllowed={#ArchitecturesAllowed}
; Ensure correct install dirs by setting the architectures that are 64-bit
ArchitecturesInstallIn64BitMode=win64
; Notify Windows Explorer that the environment variables have changed
ChangesEnvironment=yes
; Debug
; SetupLogging=yes

;; App info
AppId={#AppId}
AppName={#AppName}
AppVerName={#AppName}
AppVersion={#ExeProductVersion}
AppPublisher={#Vendor}
AppPublisherURL={#AppPublisherURL}
AppSupportURL={#AppSupportURL}
AppUpdatesURL={#AppUpdatesURL}

;; Dirs and logos
OutputDir={#OutputDir}
OutputBaseFilename={#OutputFileName}
; Setting default installDir based on the install mode
DefaultDirName={code:GetDefaultDir}
; Enable the user to select the installation directory every time
UsePreviousAppDir=no
; UninstallFilesDir={app}\uninstall
LicenseFile={#LicenseFile}
SetupIconFile={#VendorBrandingLogo}
UninstallDisplayIcon={uninstallexe}
; Add these lines to change the banner images
WizardImageFile={#VendorBrandingDialog}
WizardSmallImageFile={#VendorBrandingSmallIcon}

;; Dialog settings
DisableDirPage=no
AlwaysShowDirOnReadyPage=yes
DirExistsWarning=auto
; Disables folder selection for start menu entry
DisableProgramGroupPage=yes
DisableWelcomePage=no
UsedUserAreasWarning=no
; Enable the user to select the installation language if one is not detected
ShowLanguageDialog=auto

;; Privileges settings
; Add these lines to enable installation scope selection
PrivilegesRequired=admin
PrivilegesRequiredOverridesAllowed=dialog
; Enable the user to select the installation mode every time (no means that upgrades will use the same mode as the previous install)
UsePreviousPrivileges=no

[Tasks]
; For more info, see https://jrsoftware.org/ishelp/index.php?topic=taskssection
Name: "FeatureEnvironment"; Description: "{cm:FeatureEnvironmentDesc}"; GroupDescription: "{cm:FeatureEnvironmentTitle}";
; AssocFileExtension is an Inno Setup provided translation. This message is translated into every language: &Associate %1 with the %2 file extension
Name: "FeatureJarFileRunWith"; Description: "{cm:AssocFileExtension,{#AppName},.jar}"; GroupDescription: "{cm:FeatureJarFileRunWithTitle}";
Name: "FeatureJavaHome"; Description: "{cm:FeatureJavaHomeDesc}"; GroupDescription: "{cm:FeatureJavaHomeTitle}"; Flags: unchecked;
; HKLM keys can only be created/modified in Admin Install Mode
Name: "FeatureOracleJavaSoft"; Description: "{cm:FeatureOracleJavaSoftDesc,{#AppName}}"; GroupDescription: "{cm:FeatureOracleJavaSoftTitle}"; Flags: unchecked; Check: IsAdminInstallMode;

[Files]
; For more info, see https://jrsoftware.org/ishelp/index.php?topic=filessection
Source: "{#SourceFiles}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension sortfilesbyname

[InstallDelete]
; For more info, see https://jrsoftware.org/ishelp/index.php?topic=installdeletesection
Type: files; Name: "{app}\install_tasks.ini"

[UninstallDelete]
; For more info, see https://jrsoftware.org/ishelp/index.php?topic=uninstalldeletesection
; This section is needed since uninstall misses the install_tasks.ini file
Type: files; Name: "{app}\install_tasks.ini"
Type: dirifempty; Name: "{app}"

[Registry]
; For more info, see https://jrsoftware.org/ishelp/index.php?topic=registrysection
; All registry key info translated from current wix/msi installer scripts

; HKLM = HKEY_LOCAL_MACHINE
; HKCU = HKEY_CURRENT_USER
; HKA changes based on install mode:
; On per machine install = HKLM = HKEY_LOCAL_MACHINE
; On per user install = HKCU = HKEY_CURRENT_USER

; Always created
Root: HKA; Subkey: "SOFTWARE\{#Vendor}\{#ProductCategory}\"; \
ValueType: none; \
Flags: uninsdeletekeyifempty;
Root: HKA; Subkey: "SOFTWARE\{#Vendor}\{#ProductCategory}\{#ExeProductVersion}"; \
ValueType: none; \
Flags: uninsdeletekey;
Root: HKA; Subkey: "SOFTWARE\{#Vendor}\{#ProductCategory}\{#ExeProductVersion}\{#JVM}\EXE"; \
ValueType: string; ValueName: "Path"; ValueData: "{app}"; \
Flags: uninsdeletekey;
Root: HKA; Subkey: "SOFTWARE\{#Vendor}\{#ProductCategory}\{#ExeProductVersion}\{#JVM}\EXE"; \
ValueType: dword; ValueName: "Main"; ValueData: "1"; \
Flags: uninsdeletekey;

; FeatureEnvironment: Add Environment Path keys if the user requests them
Root: HKA; Subkey: "SOFTWARE\{#Vendor}\{#ProductCategory}\{#ExeProductVersion}\{#JVM}\EXE"; \
ValueType: dword; ValueName: "EnvironmentPath"; ValueData: "1"; \
Flags: uninsdeletekey; Check: WasTaskSelected('FeatureEnvironment');
Root: HKA; Subkey: "SOFTWARE\{#Vendor}\{#ProductCategory}\{#ExeProductVersion}\{#JVM}\EXE"; \
ValueType: dword; ValueName: "EnvironmentPathSetForSystem"; ValueData: "1"; \
Flags: uninsdeletekey; Check: IsAdminInstallMode and WasTaskSelected('FeatureEnvironment');
Root: HKA; Subkey: "SOFTWARE\{#Vendor}\{#ProductCategory}\{#ExeProductVersion}\{#JVM}\EXE"; \
ValueType: dword; ValueName: "EnvironmentPathSetForUser"; ValueData: "1"; \
Flags: uninsdeletekey; Check: not IsAdminInstallMode and WasTaskSelected('FeatureEnvironment');

; FeatureJarFileRunWith: Add .jar file association keys if the user requests them
; Note: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar\OpenWithProgids is
; automatically created by Windows when running jar file for the first time
Root: HKA; Subkey: "SOFTWARE\Classes\.jar"; \
ValueType: string; ValueName: ""; ValueData: "{#Vendor}.jarfile"; \
Flags: uninsdeletevalue uninsdeletekeyifempty; Check: WasTaskSelected('FeatureJarFileRunWith');
Root: HKA; Subkey: "SOFTWARE\Classes\.jar"; \
ValueType: string; ValueName: "Content Type"; ValueData: "application/java-archive"; \
Flags: uninsdeletevalue uninsdeletekeyifempty; Check: WasTaskSelected('FeatureJarFileRunWith');
; Creating null keys this way to make sure that they are removed as expected during uninstallation
Root: HKA; Subkey: "SOFTWARE\Classes\{#Vendor}.jarfile"; ValueType: none; Flags: uninsdeletekeyifempty; Check: WasTaskSelected('FeatureJarFileRunWith');
Root: HKA; Subkey: "SOFTWARE\Classes\{#Vendor}.jarfile\shell"; ValueType: none; Flags: uninsdeletekeyifempty; Check: WasTaskSelected('FeatureJarFileRunWith');
Root: HKA; Subkey: "SOFTWARE\Classes\{#Vendor}.jarfile\shell\open"; ValueType: none; Flags: uninsdeletekeyifempty; Check: WasTaskSelected('FeatureJarFileRunWith');
; Two doublequotes (") are used in the ValueName to escape the quotes properly. Example value written to key: "C:\Program Files\Adoptium\jdk-17.0.15.6-hotspot\bin\javaw.exe" -jar "%1" %*
Root: HKA; Subkey: "SOFTWARE\Classes\{#Vendor}.jarfile\shell\open\command"; \
ValueType: string; ValueName: ""; ValueData: """{app}\bin\javaw.exe"" -jar ""%1"" %*"; \
Flags: uninsdeletevalue uninsdeletekeyifempty; Check: WasTaskSelected('FeatureJarFileRunWith');
; TODO: Add HKA keys for JDK8 on x64 (if IcedTeaWeb is bundled) to process .jnlp files (similar to the .jar file handling above).
; OR: decide that EXEs will no longer support JDK8 and remove this TODO

; FeatureJavaHome: Add JavaHome keys if the user requests them
Root: HKA; Subkey: "SOFTWARE\{#Vendor}\{#ProductCategory}\{#ExeProductVersion}\{#JVM}\EXE"; \
ValueType: dword; ValueName: "JavaHome"; ValueData: "1"; \
Flags: uninsdeletekey; Check: WasTaskSelected('FeatureJavaHome');
Root: HKA; Subkey: "SOFTWARE\{#Vendor}\{#ProductCategory}\{#ExeProductVersion}\{#JVM}\EXE"; \
ValueType: dword; ValueName: "JavaHomeSetForSystem"; ValueData: "1"; \
Flags: uninsdeletekey; Check: IsAdminInstallMode and WasTaskSelected('FeatureJavaHome');
Root: HKA; Subkey: "SOFTWARE\{#Vendor}\{#ProductCategory}\{#ExeProductVersion}\{#JVM}\EXE"; \
ValueType: dword; ValueName: "JavaHomeSetForUser"; ValueData: "1"; \
Flags: uninsdeletekey; Check: not IsAdminInstallMode and WasTaskSelected('FeatureJavaHome');
; Add JAVA_HOME env var for system-level environment variables (admin install)
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; \
ValueType: string; ValueName: "JAVA_HOME"; ValueData: "{app}"; \
Flags: uninsdeletevalue; Check: IsAdminInstallMode and WasTaskSelected('FeatureJavaHome');
; Add JAVA_HOME env var for user-level environment variables (user install)
Root: HKCU; Subkey: "Environment"; \
ValueType: string; ValueName: "JAVA_HOME"; ValueData: "{app}"; \
Flags: uninsdeletevalue; Check: not IsAdminInstallMode and WasTaskSelected('FeatureJavaHome');

; FeatureOracleJavaSoft: Add JavaSoft Keys if the user requests them
Root: HKLM; Subkey: "SOFTWARE\JavaSoft\{#ProductCategory}"; \
ValueType: string; ValueName: "CurrentVersion"; ValueData: "{#ProductMajorVersion}"; \
Flags: uninsdeletekeyifempty; Check: (ShouldUpdateJavaVersion and not IsUninstaller and WasTaskSelected('FeatureOracleJavaSoft')) or (IsUninstaller and WasTaskSelected('FeatureOracleJavaSoft'));
Root: HKLM; Subkey: "SOFTWARE\JavaSoft\{#ProductCategory}\{#ProductMajorVersion}"; \
ValueType: string; ValueName: "JavaHome"; ValueData: "{app}"; \
Flags: uninsdeletevalue uninsdeletekeyifempty; Check: WasTaskSelected('FeatureOracleJavaSoft');
Root: HKLM; Subkey: "SOFTWARE\JavaSoft\{#ProductCategory}\{#ExeProductVersion}"; \
ValueType: string; ValueName: "JavaHome"; ValueData: "{app}"; \
Flags: uninsdeletekey; Check: WasTaskSelected('FeatureOracleJavaSoft');
; The RuntimeLib key is only used by JREs, not JDKs
#if ProductCategory == "JRE"
Root: HKLM; Subkey: "SOFTWARE\JavaSoft\{#ProductCategory}\{#ProductMajorVersion}"; \
ValueType: string; ValueName: "RuntimeLib"; ValueData: "{app}\bin\server\jvm.dll"; \
Flags: uninsdeletevalue uninsdeletekeyifempty; Check: WasTaskSelected('FeatureOracleJavaSoft');
Root: HKLM; Subkey: "SOFTWARE\JavaSoft\{#ProductCategory}\{#ExeProductVersion}"; \
ValueType: string; ValueName: "RuntimeLib"; ValueData: "{app}\bin\server\jvm.dll"; \
Flags: uninsdeletekey; Check: WasTaskSelected('FeatureOracleJavaSoft');
#endif
; TODO: Add HKLM key for JDK8 on x64 (if IcedTeaWeb is bundled) below
; OR: decide that EXEs will no longer support JDK8 and remove this TODO
; Root: HKLM; Subkey: "SOFTWARE\Classes\MIME\Database\Content Type\application/x-java-jnlp-file"; ValueType: string; ValueName: "Extension"; ValueData: ".jnlp"; Flags: uninsdeletevalue;
Loading