如何将 JAR 文件捆绑到 Mac 应用程序包中

How to bundle a JAR file into a Mac Application Bundle

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

如果您有 Java 6 或更低版本和更旧的系统,那么您在 Developer 目录中有一个由 Apple(我认为)制作的程序。这正是您想要的,否则,您可以创建一个 "hack" 应用程序包(因为它是 "I don't want to search through the internet" 方法)。

  1. 启动脚本编辑器
  2. 点击 "Save As" 和 "File" select "Application".
  3. 右键单击捆绑包 select "Show Package Contents"
  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 后面的 space。然后将您刚刚创建的文件拖到终端 window 中您刚刚键入的文本末尾,然后按回车键。
  8. 最后要做的是将 jar 文件复制到 "Contents" 文件夹中。

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

它应该是这样的: