将JavaFX应用程序与JRE捆绑 - Mac版

时间:2015-06-23 02:58:36

标签: macos netbeans javafx bundle preloader

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

我发现的问题是Netbeans生成的应用程序完全忽略了JavaFX预加载器。我认为这是因为增加了精简的JRE。我无法在网上找到任何解决方案,并希望在遇到同一问题的任何人发布一个。

1 个答案:

答案 0 :(得分:0)

这是你要做的事情:

  1. 使用上面链接的过程,按照正常方式打包应用。
  2. 右键点击制作的应用,然后选择显示包内容。然后输入目录文件夹。
  3. 输入插件文件夹。这包含JRE。删除它。
  4. 将已删除的JRE替换为计算机上存储的副本。它可以在您的硬盘中找到。图书馆< Java< Java虚拟机。如果有多个文件夹,只需复制所需的版本。
  5. 返回目录文件夹,然后输入 MacOS 文件夹。这包含运行Jar文件的shell。使用文本编辑器打开其中的可执行文件并删除所有内容。替换为:
  6.   

    #!/bin/sh

         

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

         

    # Set the working directory DIR=$(cd "$(dirname "$0")"; 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徽标中的应用程序图标,请返回目录并将您自己的.icns文件添加到资源文件夹
    2. 你有它!该应用程序应按预期,预加载器和所有。

      运行