将您的 JavaFX 应用程序与 JRE 捆绑在一起 - Mac 版本

Bundle your JavaFX App with a JRE - Mac Edition

我 运行 发现 Netbeans 将 Java 程序打包成原生 Mac 应用程序的方式存在重大问题(对于那些不熟悉的人,Netbeans 可以捆绑您的 Jar 文件有了 JRE,您就拥有了一个完全独立的应用程序。客户甚至不必在他们的计算机上安装 Java 就可以 运行 它。整个过程解释得很好 )。

我发现的问题是 Netbeans 生成的应用程序完全忽略了 JavaFX 预加载器。我认为这是因为添加了精简的 JRE。我在网上找不到任何解决方案,想 post 在这里为 运行 遇到相同问题的任何人提供一个解决方案。

这是你必须做的:

  1. 使用上面链接的过程,像往常一样打包应用程序。
  2. 右击生成的应用select显示包内容然后进入Contents文件夹
  3. 进入 Plugins 文件夹。这包含 JRE。删除它。
  4. 用您计算机上存储的副本替换已删除的 JRE。它可以在 你的硬盘 < 库 < Java < Java 虚拟机中找到。如果里面有多个文件夹,只需要复制你需要的版本即可。
  5. 返回Contents文件夹,进入MacOS文件夹。这包含 shell,运行 是您的 Jar 文件。使用文本编辑器打开其中的可执行文件并删除所有内容。将其替换为:

#!/bin/sh

# Constants APP_JAR="YOURAPP.jar" APP_NAME="YOURAPP" VM_ARGS=""

# Set the working directory DIR=$(cd "$(dirname "[=12=]")"; pwd)

# Set java location _java="../PlugIns/jdk1.8.0_05.jdk/Contents/Home/bin/java"

# Move to correct directory cd $DIR

# Run the application exec $_java $VM_ARGS -Dapple.laf.useScreenMenuBar=true -Dcom.apple.macos.use-file-dialog-packages=true -Xdock:name="$APP_NAME" -Xdock:icon="$DIR/../Resources/ICON.icns" -cp ".;$DIR;" -jar "$DIR/../Java/$APP_JAR"

在上面,用YOURAPP代替你的jar文件的名字,jdk1.8.0_05 对于您在第 4 步中添加的 Java 版本,以及 ICON 作为您的应用程序图标的名称(如果有的话)。

  1. 如果您想更改应用程序的标准 Java 徽标图标,请返回 Contents 并将您自己的 .icns 文件添加到 资源文件夹。

给你!该应用程序应该 运行 符合预期,预加载器和所有。