Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8188763

icns file not found error with javapackager on macOS High Sierra

XMLWordPrintable

    • x86
    • os_x

      FULL PRODUCT VERSION :
      java version "9"
      Java(TM) SE Runtime Environment (build 9+181)
      Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Darwin Comet.local 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

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      macOS High Sierra
      Version 10.13
      MacBook (Retina, 12-inch, Early 2016)

      A DESCRIPTION OF THE PROBLEM :
      javapackager command crashes out with:

      ERROR: File Not Found. (-43) on file: /var/folders/c1/hkb.../images/ShowTime/.VolumeIcon.icns

      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 -
      New file generated:
      deploy/ShowTime-1.0.dmg
      ACTUAL -
      Error: Bundler "DMG Installer" (dmg) failed to produce a bundle.

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      Running [/usr/bin/SetFile, -c, icnC, /var/folders/c1/hkb5ph9s7l352nhr17n310vc0000gn/T/fxbundler10109585143778151656/images/ShowTime/.VolumeIcon.icns]
      ERROR: File Not Found. (-43) on file: /var/folders/c1/hkb5ph9s7l352nhr17n310vc0000gn/T/fxbundler10109585143778151656/images/ShowTime/.VolumeIcon.icns
      java.io.IOException: Exec failed with code 2 command [[/usr/bin/SetFile, -c, icnC, /var/folders/c1/hkb5ph9s7l352nhr17n310vc0000gn/T/fxbundler10109585143778151656/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:371)
          at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348)
          at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)
      Config files are saved to /var/folders/c1/hkb5ph9s7l352nhr17n310vc0000gn/T/fxbundler10109585143778151656/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:374)
          at jdk.packager/com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:348)
          at jdk.packager/com.sun.javafx.tools.packager.Main.main(Main.java:496)

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      import java.util.Date;
      import javax.swing.*;

      public class ShowTime {

         public static void main(String[] args) {
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setTitle("It's Showtime!");
            f.getContentPane().add(new JLabel(new Date().toString()));
            f.pack();
            f.setVisible(true);
            }

      }
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      None.

      The javapackager command worked correctly on macOS Sierra (10.12).

      The provided steps are a subset of a tutorial I maintain about how to create a macOS installer for a Java application.

      Tutorial:
      http://centerkey.com/mac/java

      Full list of steps:
      http://centerkey.com/mac/java/commands.txt

            vdrozdov Victor Drozdov (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: