在macOS High Sierra上javapackager找不到icns文件错误

Dem Pilafian:

我刚刚安装了macOS High Sierra(10.13),并试图更新我写的教程,该教程显示了如何将Java Swing应用程序(可执行JAR)打包到macOS安装程序中。

本教程的步骤在macOS Serra(10.12)上运行良好

现在javapackager命令崩溃了:

错误:找不到文件。(-43)在文件上:/var/folders/c1/hkb.../images/ShowTime/.VolumeIcon.icns

系统信息:

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
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

复制的简化步骤:

curl --remote-name https://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

完整错误:

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)

完整的教程和步骤:Mac Java!| 命令.txt

无论我是否提供图标文件,都会发生错误。关于如何解决它的任何想法?

Dem Pilafian:

正如GabeV所说,该-native dmg选项已损坏但-native image有效。

错误报告:https //bugs.java.com/bugdatabase/view_bug.do?bug_id
= JDK-8188763

幸运的是,该-native pkg选项也有效。它生成一个.pkg安装程序文件,而不是.dmg磁盘映像,但是在许多情况下,安装程序文件是理想的结果。

解决方法的新步骤pkg

curl --remote-name https://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 pkg -name ShowTime \
   -srcdir . -srcfiles ShowTime.jar -appclass ShowTime \
   -BappVersion=1.0.0 -outdir deploy -v
ls -l deploy
open deploy/ShowTime-1.0.0.pkg

文档:https
//docs.oracle.com/javase/9​​/tools/javapackager.htm

更新(2017年12月4日):
显然,此问题与未检测到macOS 10.3(High Sierra)的新Apple文件系统(APFS)的错误有关。参见:https : //bugs.java.com/bugdatabase/view_bug.do?bug_id=8190758

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

CMake在macOS High Sierra上找不到wxWidgets库

macOS High Sierra(10.3)-bash:find。:找不到命令

在macOS High Sierra上找不到Python调试器pdb

macOS High Sierra上的参数替换错误替换错误

在macOS High Sierra上对OpenMP的CMake支持

无法在macOS High Sierra上安装抖动

macOS High Sierra上的Intel HAXM(10.13)

MacOS High Sierra Arduino Mac 1.8.5上的PROGMEM错误

相机无法在MacOS Sierra(和High Sierra)上使用

CocoaPods无法在macOS High Sierra中工作

无法从源MacOS High Sierra构建Tensorflow

MacOS High Sierra卸载所有Postgres

XDebug 在 MacOS High Sierra 上不起作用:找不到符号:_xdebug_monitored_function_dtor

MacOS High Sierra MySQL错误:设置值时出错

MacOS:在High Sierra上brew install graph-tool

如何在MacOS 10.13.3(High Sierra)上安装GDB

Flex在MacOS High Sierra / Xcode 9上没有输出

LWJGL 3.1.6 OpenGL 4.1在macOS High Sierra上崩溃

如何在MacOS High Sierra上安装PHP Opcache?

macOS High Sierra 10.13上损坏的c ++ std库

在macOS High Sierra上创建APFS RAM磁盘

在 macOS High Sierra 上通过终端设置 Git

无法在 macOS High Sierra 10.13.6 上安装多语言

无法在macOS High Sierra上打开SQL编辑器

如何在macOS 10.13 High Sierra上安装Perl

Xcode 7.3.1是否可以在macOS High Sierra(10.13)上运行?

macOS 10.13(High Sierra)上的MCNearbyServiceAdvertiser无法正常工作

如何在macOS High Sierra上加速dd?

如何在macOS High Sierra上获取iWork套件?