RFR: 8326447: jpackage creates Windows installers that cannot be signed [v2]

Alexey Semenyuk asemenyuk at openjdk.org
Sat Feb 22 01:05:45 UTC 2025


> Support the use of a custom msi wrapper executable when building an exe installer.
> 
> Put `installer.exe` file in the resource directory and jpackage will use it instead of the default `msiwrapper.exe` resource for exe installer.
> 
> To test this feature created a test that builds exe installer with a custom icon. The result installer exe is used as a custom msi wrapper executable in the second jpackage command that builds exe installer with the default icon. The installer exe produced by the second jackage command should have the same icon as the exe installer created in the first jpackage run.
> 
> Moved code verifying icons in executables from `LauncherIconVerifier.WinIconVerifier` class into `WinExecutableIconVerifier` class to make it available for tests. Replaced inline powershell script extracting icons from executables with standalone `read-executable-icon.ps1` powershell script. The script uses `ExtractIcon` instead of `ExtractAssociatedIcon`. It extracts icon from the executable's resources and will not fall back to anything if there is no icon resource.

Alexey Semenyuk has updated the pull request incrementally with one additional commit since the last revision:

  Use ExtractIconEx() WinAPI to extract icons from executables, as it doesn't rely on GetLastError() to deliver error information to the caller. GetLastError() is not reliable in managed code.

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/23732/files
  - new: https://git.openjdk.org/jdk/pull/23732/files/32a8a696..31ebde0c

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=23732&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23732&range=00-01

  Stats: 9 lines in 1 file changed: 3 ins; 0 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/23732.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23732/head:pull/23732

PR: https://git.openjdk.org/jdk/pull/23732


More information about the core-libs-dev mailing list