You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
macOS zipball and tarball may not keep the bundled JRE executable #508
Zipballs and tarballs of a macOS app may contain a bundled JRE whose executables aren't executable, when built off macOS (e.g. on Windows).
Where
The rules that set mode 755 on the JRE executables point to Contents/PlugIns/${jreDirectoryName}/Contents/Home/bin/*, but the JRE is in Contents/PlugIns/${jreDirectoryName}.jre/Contents/Home (MacPackager, line 95):
gradle/CreateTarball.java (lines 87 and 94) and gradle/CreateZipball.java (lines 83 and 89).
mac/assembly.xml.vtl (lines 16, 17, 31 and 32), used by Maven.
So the JRE's bin/* and lib/jspawnhelper keep whatever mode the copy preserved. On macOS and GNU/Linux the files are already executable, but built on Windows they may not be, and the app wouldn't start. Not tested yet.
Fix
Use ${jreDirectoryName}.jre in those paths. A customLauncher used with administratorRequired isn't in the 755 list either.
Fixed in devel (29e3392): the zipball and tarball permission rules point to the .jre bundle folder, and lib/jspawnhelper gets mode 755 with Gradle too. The macOS smoke tests check that bin/java and jspawnhelper are executable in the tarball.
It will ship in 2.0.1, and I'll close this issue then.
How to test 2.0.1-SNAPSHOT
Important
Since 2.0.0 the groupId, the Gradle plugin id and the Java packages are io.github.javapackager (see Upgrading to 2.0).
Maven, add the snapshots repository and use the snapshot version:
Activity
Fix the bugs found while documenting 2.0.0
fvarrui commentedon Oct 11, 2026
Fixed in
devel(29e3392): the zipball and tarball permission rules point to the.jrebundle folder, andlib/jspawnhelpergets mode 755 with Gradle too. The macOS smoke tests check thatbin/javaandjspawnhelperare executable in the tarball.It will ship in 2.0.1, and I'll close this issue then.
How to test
2.0.1-SNAPSHOTImportant
Since 2.0.0 the
groupId, the Gradle plugin id and the Java packages areio.github.javapackager(see Upgrading to 2.0).Maven, add the snapshots repository and use the snapshot version:
Gradle, add the snapshots repository in
settings.gradle:pluginManagement { repositories { maven { url = 'https://central.sonatype.com/repository/maven-snapshots/' } gradlePluginPortal() } }and use the snapshot version in
build.gradle:plugins { id 'io.github.javapackager' version '2.0.1-SNAPSHOT' }See Snapshot versions for more.