【问题标题】:Do I need a Mac to make a Java application bundle?我需要 Mac 来制作 Java 应用程序包吗?
【发布时间】:2010-09-07 12:58:17
【问题描述】:
我想在不使用 Mac 的情况下为 Mac 创建 Java 应用程序包。
根据Java Deployment Options for Mac OS X,我可以通过使用 Xcode、Jar Bundler 或从命令行执行此操作。设置好文件和文件夹后,我所需要的命令行方法就是调用 /Developer/Tools/SetFile。 Linux 或 Windows 上是否有 SetFile 克隆?如果没有,我是否必须购买 Mac?
【问题讨论】:
标签:
java
macos
deployment
【解决方案1】:
OS X 上的 Java 应用程序包只不过是一个包含 .jar 和许多配置文件的目录。 SetFile 工具在目录上设置一个自定义 HFS 文件系统属性,以告诉 finder 它是一个应用程序,但给它一个“.app”扩展名也可以达到同样的目的。我认为没有什么能阻止你在 Windows 上构建一个,虽然你当然无法测试它是否有效,但如果你能够在真正的 Mac 上至少测试一次,那么你就可以可以想象,在 Windows 上更新其中的 .jar 以反映代码更改,而不会有太大困难。
查看Bundle Programming Guide 了解更多信息。
【解决方案2】:
一种方法是使用例如 Ant 的应用程序生成一个 zip 文件。在 ant 中,您可以使用类似 filemode="755" 的方式指定 Contents/MacOS 中的文件应具有执行权限。
【解决方案3】:
从技术上讲,您不需要 Mac。 OS X 中的应用程序只需要specific folder structure 和XML file。但是,Mac 有一个非常好的工具,叫做Jar Bundler。除了设置捆绑目录和 XML 文件之外,它还创建了一个 C 可执行文件,该可执行文件通过 JNI 启动您的 java 应用程序。这很好,因为进程名称与应用程序名称匹配。
我相信您可以让某人为您生成一次应用程序包,然后将文件签入您的项目。在构建时,您需要做的就是将 jar 文件复制到适当的位置,并可能更新 XML 文件。
【解决方案4】:
在NITE 的 Mac 端口上工作过,我可以说其他平台的 jar 包在 Mac 上应该同样好用。我仍然建议找到一个用于测试的 mac(或者甚至宣布 mac 支持处于 beta 版),因为我们在移植期间发现了一些仅限 mac 的怪癖(与我们已经发现的仅限 windows 和 linux 的怪癖一起使用)