【问题标题】:How to bundle a JAR file into a Mac Application Bundle如何将 JAR 文件捆绑到 Mac 应用程序包中
【发布时间】:2015-12-04 14:26:12
【问题描述】:

我环顾四周,但找不到任何有用或有用的东西。我知道 Launch4j 可以使用 .exe 而不是 .app 文件执行我想要的操作。我有可运行的 JAR,但不知道如何将它捆绑到 .app 中。我已尝试多次(均未成功)将其作为 .app 从 eclipse 导出,但导出后无法打开;没有错误消息它只是不会打开。所以我的问题是如何将其捆绑到应用程序包中?

【问题讨论】:

    标签: java eclipse macos jar export


    【解决方案1】:

    如果您有 Java 6 或更低版本以及较旧的系统,那么您在 Developer 目录中有一个 Apple 制作的程序(我认为)。这正是您想要的,否则,您可以创建一个“hack”应用程序包(因为它是“我不想通过互联网搜索”的方法)。

    1. 启动脚本编辑器
    2. 单击“另存为”并在“文件”下选择“应用程序”。
    3. 右键单击捆绑包并选择“显示包内容”
    4. 导航到“Contents/MacOS”并删除文件“applet”
    5. 创建一个同名的新文件并将以下代码粘贴到其中:

      #!/bin/bash
      SOURCE="${BASH_SOURCE[0]}"
      while [ -h "$SOURCE" ]; do
          DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
          SOURCE="$(readlink "$SOURCE")"
          [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
      done
      DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
      
      cd "$DIR"
      cd ..
      
      echo "$(pwd)"
      
      for file in *
      do
          if [ -f "$file" ]
          then
              if [[ "$file" =~ .*.jar ]]
              then
                  java -jar "$file"
              fi
          fi
      done
      
    6. 保存文件

    7. 现在打开终端(Spotlight -> 终端) 并输入以下chmod 755 ,注意 755 后面的空格。然后将您刚刚创建的文件拖到终端窗口中,位于您刚刚输入的文本的末尾,然后按 Enter。
    8. 最后要做的就是将 jar 文件复制到“Contents”文件夹中。

    注意:您正在创建一个默认 AppleScript Applet,然后使用您自己的切换可执行文件,以便能够启动 jar 文件。要授予它执行权限,您需要执行chmod 755

    它应该是这样的:

    【讨论】:

    • 我完全按照这些步骤操作,但它给出了错误“无法打开此文件,因为它不完整”
    • 你真的命名了文件小程序吗?没有扩展?因为那是我能想到的可能导致此错误的唯一原因。我附上了文件层次结构的屏幕截图。
    • 如果它是您想要的,您能接受我的回答吗?
    • 是的,我的错。你知道我将如何将 JRE 与这个应用程序捆绑在一起吗?
    • 老实说,我认为你不需要这样做,因为很多人都有它,但如果你很绝望(真的很绝望,我认为 java 有大约 350 MB),你可以运行/usr/libexec/java_home 获取您的java home,然后将其放入应用程序包中,然后您只需修改bash 脚本以使用此java 安装。
    猜你喜欢
    • 2014-10-08
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2018-03-08
    • 2012-05-29
    相关资源
    最近更新 更多