JDK-8189652 : javapackager fails on Mac OS 10.13
  • Type: Bug
  • Component: deploy
  • Sub-Component: packager
  • Affected Version: 8u144,9
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: os_x
  • CPU: x86
  • Submitted: 2017-10-18
  • Updated: 2017-12-09
  • Resolved: 2017-11-21
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 10
10Resolved
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

ADDITIONAL OS VERSION INFORMATION :
Mac OS 10.13
17.0.0 Darwin Kernel Version 17.0.0: Thu Aug 24 21:48:19 PDT 2017; root:xnu-4570.1.46~2/RELEASE_X86_64 x86_64

A DESCRIPTION OF THE PROBLEM :
Packaging JavaFX native gives 

ERROR: File Not Found. (-43)  on file: /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler8218006848095561556/images/APP_NAME_HERE/.VolumeIcon.icns 
java.io.IOException: Exec failed with code 2 command [[/usr/bin/SetFile, -c, icnC, /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler8218006848095561556/images/APP_NAME_HERE/.VolumeIcon.icns] in unspecified directory


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
curl --remote-name http://centerkey.com/mac/java/ShowTime.java 
javac ShowTime.java 
echo "Main-Class: ShowTime" > MainClass.txt 
jar cmf MainClass.txt ShowTime.jar *.class 
jdk=$(/usr/libexec/java_home) 
$jdk/bin/javapackager -deploy -native dmg -name ShowTime \ 
   -srcdir . -srcfiles ShowTime.jar -appclass ShowTime \ 
   -outdir deploy -outfile ShowTime -v 

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
A fully packaged DMG package
ACTUAL -
Failed build

ERROR MESSAGES/STACK TRACES THAT OCCUR :
/var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/images/image-3981030682968931624/ShowTime.app: signed app bundle with Mach-O thin (x86_64) [ShowTime]
  Config files are saved to /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/macosx. Use them to customize package.
  Using default package resource [dmg background]  (add package/macosx/ShowTime-background.png to the class path to customize)
  Using default package resource [volume icon]  (add package/macosx/ShowTime-volume.icns to the class path to customize)
Using default package resource [script to run after application image is populated]  (add package/macosx/ShowTime-post-image.sh to the class path to customize)
Preparing dmg setup: /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/macosx/ShowTime-dmg-setup.scpt
  Using default package resource [DMG setup script]  (add package/macosx/ShowTime-dmg-setup.scpt to the class path to customize)
 Creating DMG file: /Users/brownd/Desktop/deploy/bundles/ShowTime-1.0.dmg
Running [/usr/bin/hdiutil, create, -quiet, -srcfolder, /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/images/image-3981030682968931624, -volname, ShowTime, -ov, /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/images/ShowTime-tmp.dmg, -format, UDRW]
Running [/usr/bin/hdiutil, attach, /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/images/ShowTime-tmp.dmg, -quiet, -mountroot, /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/images]
Running [osascript, /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/macosx/ShowTime-dmg-setup.scpt]
Running [/usr/bin/SetFile, -c, icnC, /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/images/ShowTime/.VolumeIcon.icns]
ERROR: File Not Found. (-43)  on file: /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/images/ShowTime/.VolumeIcon.icns 
java.io.IOException: Exec failed with code 2 command [[/usr/bin/SetFile, -c, icnC, /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/images/ShowTime/.VolumeIcon.icns] in unspecified directory
	at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:165)
	at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:138)
	at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:132)
	at com.oracle.tools.packager.mac.MacDmgBundler.buildDMG(MacDmgBundler.java:391)
	at com.oracle.tools.packager.mac.MacDmgBundler.bundle(MacDmgBundler.java:92)
	at com.oracle.tools.packager.mac.MacDmgBundler.execute(MacDmgBundler.java:549)
	at com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:352)
	at com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:319)
	at com.sun.javafx.tools.packager.Main.main(Main.java:476)
  Config files are saved to /var/folders/_x/bjbbfjb15917fvwm06zytrs40000gn/T/fxbundler5185083527760861176/macosx. Use them to customize package.
Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "DMG Installer" (dmg) failed to produce a bundle.
	at com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:354)
	at com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:319)
	at com.sun.javafx.tools.packager.Main.main(Main.java:476)

REPRODUCIBILITY :
This bug can be reproduced always.


Comments
Verified this on MAC OS X 10.12.6 for JDK 8u144, 8u151, 9 and 10 b26. This seems related to JDK-8188763. This still need to be checked for OS X 10.13 though. Results (10.12.6): ==================== 8u144: FAIL 8u151 and 8u152: FAIL 9: FAIL 10 b26: FAIL To verify, run the steps as below with respective JDK versions. 1. Compile attached example ShowTime.java 2. echo "Main-Class: ShowTime" > MainClass.txt 3. Create ShowTime.jar $ jar cmf MainClass.txt ShowTime.jar *.class 4. Set java_home to respective JDK versions jdk=$(/usr/libexec/java_home) 5. Create package with javapackager command (Run with jdk 10) $ javapackager -deploy -native dmg -name ShowTime -srcdir . -srcfiles ShowTime.jar -appclass ShowTime -outdir deploy -outfile ShowTime -v With JDK-10 received java.io.IOException: Exec failed with code 69 command [[/usr/bin/SetFile, -c, icnC, /var/folders/34/q3j7vxl146332ll08yytkxyh0000gr/T/fxbundler113501462362204965/images/ShowTime/.VolumeIcon.icns] in unspecified directory at jdk.packager/com.oracle.tools.packager.IOUtils.exec(IOUtils.java:169) at jdk.packager/com.oracle.tools.packager.IOUtils.exec(IOUtils.java:142) at jdk.packager/com.oracle.tools.packager.IOUtils.exec(IOUtils.java:136) at jdk.packager/com.oracle.tools.packager.mac.MacDmgBundler.buildDMG(MacDmgBundler.java:391) at jdk.packager/com.oracle.tools.packager.mac.MacDmgBundler.bundle(MacDmgBundler.java:92) at jdk.packager/com.oracle.tools.packager.mac.MacDmgBundler.execute(MacDmgBundler.java:549) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:370) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:347) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:500) Config files are saved to /var/folders/34/q3j7vxl146332ll08yytkxyh0000gr/T/fxbundler113501462362204965/macosx. Use them to customize package. Exception in thread "main" com.sun.javafx.tools.packager.PackagerException: Error: Bundler "DMG Installer" (dmg) failed to produce a bundle. at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:373) at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:347) at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:500)
19-10-2017