【问题标题】:Why is Jar Bundler gone in Mac OS X Mountain Lion 10.8.2为什么 Jar Bundler 在 Mac OS X Mountain Lion 10.8.2 中消失了
【发布时间】:2013-02-28 19:23:27
【问题描述】:

Apple 有一个名为Jar Bundler 的应用程序,过去由 Apple 通过 Xcode 分发。

Jar Bundler 的目的是为 Java 应用程序创建 Mac OS X 应用程序包(*.app 目录)直到版本 6 (1.6.x),以方便 Mac OS X 用户。​​​​​​​​

截至目前,你仍然可以得到

  • 来自 Apple 的 JDK 1.6.0_43

又名

  • Java for OS X 2013-002 开发人员包 2013 年 3 月 4 日

对于当前的 Mac OS X Mountain Lion 10.8.2 通过

但您无法获得Jar Bundler

我正在使用最新的 Mac OS X 10.8.2 和最新的 Xcode 4.6 (4H127) 以及所有 命令行工具 em> 已安装。经过我所做的所有研究,我希望在这里:

/usr/share/java/Tools/Jar Bundler.app

但是没有Jar Bundler。即使是全局搜索sudo find / -name Jar\ Bundler.app 也没有真正找到Jar Bundler

所以我的问题是:Jar Bundler 附带的最后一个已知 Xcode 版本是什么

注意:我知道还有其他方法可以实现 Jar Bundler 在这里所做的事情,例如使用 Mac OS X JarBundler ANT Task 或手动构建整个应用程序包,但这不是问题。

【问题讨论】:

  • 不知道他们何时删除了它,但我的系统上仍有一个副本 - 它与所有其他 java 工具一起使用。如果你不能得到一个明确的答案,那么你可以尝试一个二进制印章来确定它是什么时候被删除的
  • @Petesh 在您的盒子上的哪条路径上。可以运行哪个版本的 Mac OS X 和 Xcode?如果你能告诉我java工具的路径会更好,所以也许我会在时间胶囊上找到它。谢谢
  • 您指定的确切位置 - /usr/share/java/Tools/Jar Bundler.app,以及其他几个工具。 Mac OS X 10.8.2, XCode 4.6 (4H127).
  • @Petesh Bummer,为什么它在我的盒子上消失了。你的 Java 6 版本是什么?是 2013 年 3 月 4 日的 1.6.0_43 吗?
  • java 1.6 版本和自己一样。我的时间机器中没有足够的历史可以回到安装之前(2012 年 6 月 20 日)。根据那个日期,我猜 XCode 4.3.3 是拥有它的最后一个版本,所以它与 Icon Composer 等其他工具在同一个窗口中被拉动

标签: java macos bundle jarbundler


【解决方案1】:

看来我必须自己回答这个问题。所以不要为此打我。

经过深入研究并从 Apple 下载了自 2012 年至今(2013 年 3 月)的所有 Java 开发包,结果证明它与 Xcode 无关。

Jar Bundler 过去是与 Apple 自己的 Java 开发人员包一起出现的。在一个接一个地尝试它们并用Pacifist检查它们之后,我发现了以下内容:

开始

安装此软件包后目录被删除,但同一软件包不再重新安装新的/usr/share/java/Tools/*.apps。

即使在 /usr/share/java/Tools 目录被 2012-006 删除后重新安装 2012-005 也不会让您回到 Jar Bundler.app

因此,在您丢失 Jar Bundler.app 后找回它的唯一方法是进行一些 Apple Java 开发人员包更新练习,您需要执行以下操作:

  1. 获取Pacifist 或您选择的其他可以处理*.pkg 文件的工具。
  2. Open Java for OS X 2012-005 Developer Package with it。
  3. Ctrl-单击JavaDeveloper.pkg\JavaTools.pkg\Jar Bundler.app
  4. 选择Install to Default location
  5. 打开Terminal.app
  6. open /usr/share/java/Tools/Jar\ Bundler.app/

就是这样,别忘了备份它。

要了解哪个Apple版本号属于哪个JDK/JRE版本号,请看下面:

  • Java for OS X 2012-005 开发人员包,自 2012 年 9 月 6 日起

    $ java -version
    java version "1.6.0_35"
    Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M4203)
    Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
    
  • Java for OS X 2012-006 开发人员包,自 2012 年 10 月 16 日起

    $ java -version
    java version "1.6.0_37"
    Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
    Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)
    
  • Java for OS X 2013-001 开发人员包,自 2013 年 2 月 19 日起

    $ java -version
    java version "1.6.0_41"
    Java(TM) SE Runtime Environment (build 1.6.0_41-b02-445-11M4107)
    Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-445, mixed mode)
    
  • Java for OS X 2013-002 开发人员包,自 2013 年 3 月 4 日起

    $ java -version
    java version "1.6.0_43"
    Java(TM) SE Runtime Environment (build 1.6.0_43-b01-447-11M4203)
    Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-447, mixed mode)
    

【讨论】:

  • 向 Oracle JDK 7 的过渡并不顺利(尤其是对于 retina machines)。我使用构建脚本和自动化,因为这是始终如一的工作(所以我在适当的情况下使用 appbundler/jarbundler)。至于“为什么被删除”?问题 - 这是 Apple 的商业决定。他们已经停止支持它,并将 Java 的所有未来开发交给 Oracle。 TBH Apple 自 10.5 时间框架以来一直在扼杀 Java 支持,所以这只是棺材上的另一个钉子。 2¢ 评论
  • 我非常感谢 Uwe 的这份非常详细的分析和报告。
  • @Petesh Legacy 解决方案从来都不是坏事。虽然推荐了更新的解决方案,但旧的解决方案(Jar Bundler.app)仍然有效;我们中的一些人只需要它来实现一次性的个人快速解决方案。当旧工具仍然可以满足我(和其他人)很少需要时,就没有必要设置和学习新工具了。
  • 你也可以用命令行工具xar解压——例如xar -xf JavaDeveloper.pkg。该包包含其他实际上是目录的.pkg 文件。这些反过来可以使用tar 提取,因为Payload 文件是tar 档案:tar -xf Payloadxartar 都是标准的 OSX 命令行工具。
  • 感谢二重奏。而已!我尝试“un”xar a *.pkg 并解压缩包含的 Payload 文件,它与我在磁盘上找到的随机 pkg 文件完美配合。很棒的提示!
【解决方案2】:

JarBundler 的官方替代品是javapackager 工具。

作为它的使用示例,这里有一个简单、解释清楚的分步教程,用于从 Java 源代码制作 OSX 应用程序:http://centerkey.com/mac/java/

【讨论】:

  • 教程在现场
  • 我只需要:find / -name 'javapackager' 然后在 packager 命令中添加 -outfile。另外,更改 jar 中的主类文件。
【解决方案3】:

简而言之,如果您想要 Jar Bundler,请安装“OS X 2012-005 Developer Package”。更新的软件包已将其删除。

【讨论】:

    【解决方案4】:

    Jar Bundler 现已停用,不适用于需要 Java 7 及更高版本的项目。查看其他StackOverflow question «Bundle a Java 7 .jar for Mac» 了解更多详情。

    这个问题中提到的解决方案很可能会继续发挥作用,但仅适用于 Java 6 之前的项目。

    【讨论】:

      【解决方案5】:

      作为 Pyxis Software 的开发人员,我想补充一点,我们开发了一个名为 Pyxis Bundler 的小型廉价应用程序,它使创建 Mac 应用程序包变得非常容易。

      我们将其设计为替代以前随 Xcode 提供的 Jar Bundler 应用程序。

      要使用 Pyxis Jar Bundler,您至少需要三个项目:

      1. 可运行的 jar 文件 (myApplicatin.jar)
      2. 图标文件 (myIcon.icns)
      3. Splash 文件 (mySplashImage.png)

      然后只需输入您的应用程序名称、版本号、内存要求、包名称、主类名称和其他一些项目。 接下来点击创建,就是这样,你的应用程序被捆绑到一个标准的 Mac Bundle 中。

      请注意,创建的任何应用程序都会保存到首选项文件中。这意味着捆绑更新只需从下拉列表中选择您的应用程序名称并增加版本号,然后单击“创建”按钮。

      更多信息请见here

      【讨论】:

        【解决方案6】:

        在 El Capitan 和 Java 9 上,java packager 安装在此处:

        "/Library/Java/JavaVirtualMachines/jdk-9.x.x.jdk/Contents/Home/bin/javapackager"

        创建别名: alias javapackager="/Library/Java/JavaVirtualMachines/jdk-9.x.x.jdk/Contents/Home/bin/javapackager"

        【讨论】:

          【解决方案7】:

          这样做:

          1. 右键安装 OS X Mountain Lion.app
          2. 显示包内容
          3. 进入 Contents/SharedSupport/ 并安装 InstallESD.dmg

          现在你必须进入这个文件夹:Packages。您会找到 JavaEssential.pkg 和 JavaTools。 Jar bundler 在 JavaTools.pkg 中。

          【讨论】:

          • 为什么投反对票?因为它假定我有 OS X Mountain Lion.app?
          猜你喜欢
          • 2013-02-12
          • 2013-02-10
          • 1970-01-01
          • 2012-10-13
          • 2012-12-07
          • 2013-09-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多