@@ -177,7 +177,11 @@ val jpackageExecutable = packagingJavaHome.map { javaHome ->
177177val startupSplashImage = file(" src/main/resources/images/startup-splash-primer-dark.png" )
178178val startupSplashEnabled = startupSplashImage.exists()
179179val startupSplashJvmOption = " -splash:${startupSplashImage.absolutePath} "
180- val startupSplashPackagedJvmOption = " -splash:\$ APPDIR/${startupSplashImage.name} "
180+ // jpackage launcher resolves $APPDIR to the jars folder (lib/app on Linux app-image).
181+ // `--app-content` currently lands in lib/, so splash path is one directory above $APPDIR.
182+ val startupSplashPackagedJvmOption = " -splash:\$ APPDIR/../${startupSplashImage.name} "
183+ // macOS jpackage can fail codesign when additional app content is injected via --app-content.
184+ val startupSplashJpackageEnabled = startupSplashEnabled && hostOs != " macos"
181185
182186/*
183187 * Per-platform icon resolution for jpackage.
@@ -403,8 +407,8 @@ tasks.register<Exec>("jpackageCurrentPlatform") {
403407 inputs.property(" jpackageAppName" , jpackageAppName)
404408 inputs.property(" jpackageAppVersion" , jpackageAppVersion)
405409 inputs.property(" jpackageIconPath" , jpackageIcon.absolutePath)
406- inputs.property(" startupSplashEnabled " , startupSplashEnabled )
407- if (startupSplashEnabled ) {
410+ inputs.property(" startupSplashJpackageEnabled " , startupSplashJpackageEnabled )
411+ if (startupSplashJpackageEnabled ) {
408412 inputs.file(startupSplashImage)
409413 inputs.property(" startupSplashPackagedJvmOption" , startupSplashPackagedJvmOption)
410414 }
@@ -433,7 +437,7 @@ tasks.register<Exec>("jpackageCurrentPlatform") {
433437 " --java-options" , Meta .nativeAccessOption
434438 )
435439
436- if (startupSplashEnabled ) {
440+ if (startupSplashJpackageEnabled ) {
437441 args(" --app-content" , startupSplashImage.absolutePath)
438442 args(" --java-options" , startupSplashPackagedJvmOption)
439443 }
@@ -472,8 +476,8 @@ if (hostOs == "windows") {
472476 inputs.property(" jpackageAppName" , jpackageAppName)
473477 inputs.property(" jpackageAppVersion" , jpackageAppVersion)
474478 inputs.property(" jpackageIconPath" , jpackageIcon.absolutePath)
475- inputs.property(" startupSplashEnabled " , startupSplashEnabled )
476- if (startupSplashEnabled ) {
479+ inputs.property(" startupSplashJpackageEnabled " , startupSplashJpackageEnabled )
480+ if (startupSplashJpackageEnabled ) {
477481 inputs.file(startupSplashImage)
478482 inputs.property(" startupSplashPackagedJvmOption" , startupSplashPackagedJvmOption)
479483 }
@@ -502,7 +506,7 @@ if (hostOs == "windows") {
502506 " --java-options" , Meta .nativeAccessOption
503507 )
504508
505- if (startupSplashEnabled ) {
509+ if (startupSplashJpackageEnabled ) {
506510 args(" --app-content" , startupSplashImage.absolutePath)
507511 args(" --java-options" , startupSplashPackagedJvmOption)
508512 }
0 commit comments