【问题标题】:Cannot build DMG from .JAR with javapackager无法使用 javapackager 从 .JAR 构建 DMG
【发布时间】:2018-01-08 12:05:20
【问题描述】:

我尝试通过运行以下命令从我的 jar 中构建 DMG 文件:

/Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home/bin/javapackager -deploy -native dmg -srcdir bin  -srcfiles MyTest.jar -srcfiles p -appclass com.example.Test -name MyTest -outdir deploy -outfile MyTest -v

但它不断给出以下错误信息:

Bundler DMG Installer skipped because of a configuration problem: Main application jar is missing.
Advice to fix: Make sure to use fx:jar task to create main application jar.

有趣的是,如果我将相同的文件夹复制到另一台 Mac 并运行相同的命令,它将成功构建 DMG。因此我认为这与我的配置或系统环境有关。

您知道发生了什么以及如何解决它吗?

【问题讨论】:

  • 你声明了一个主类吗?
  • 是的。我可以直接运行“jar”文件,没有任何问题
  • 我从未使用过此命令,但您是否应该拥有-srcfiles p?这似乎是一个奇怪的文件名……
  • @DidierL 是的,它是一个文件夹,其中包含另一个主要 Java 代码正在使用的第三方库

标签: java java-8


【解决方案1】:

我发现-srcfiles这个选项的顺序很重要。最后一个-srcfiles 应该是JAR 文件。就我而言,我将-srcfiles p 放在-srcfiles MyTest.jar 之后,这就是它不起作用的原因。奇怪的是它只发生在一些 Mac 和一些 JDK 上,并不是所有的都有这个问题。

【讨论】:

    【解决方案2】:

    javapackager 已从 java11 中弃用,即使使用 java8,我的本地设置也遇到了同样的问题。有一个新工具叫做 jpackage,这里是一个简单的例子:

    jpackage -t dmg -n AppName --main-class main.core -i . --main-jar AppName.jar --icon ~/Downloads/path-toicons8-log-96.icns
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-14
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-24
      相关资源
      最近更新 更多