首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >macOS High上的javapackager文件找不到错误

macOS High上的javapackager文件找不到错误
EN

Stack Overflow用户
提问于 2017-10-01 18:04:55
回答 1查看 1.6K关注 0票数 6

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

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

现在,javapackager命令崩溃的有:

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

系统信息:

代码语言:javascript
运行
复制
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)

复制的简化步骤:

代码语言:javascript
运行
复制
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

完全错误:

代码语言:javascript
运行
复制
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)

完整教程和步骤:麦克·爪哇! = commands.txt

无论我是否提供图标文件,都会发生错误。有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-01 22:36:35

正如GabeV评论的那样,-native dmg选项被破坏了,但-native image工作正常。

Bug报告:

id=JDK-8188763

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

pkg 解决方案的新步骤:

代码语言:javascript
运行
复制
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塞拉利昂)的新苹果文件系统(APFS)的缺陷有关。请参阅:id=8190758

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46515301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档