我的程序在 Eclipse 中运行良好。但是,如果我尝试将其导出为可运行的 jar,则双击它时 jar 不会打开。有没有办法在 Eclipse 中直接导出到 .app?
4 回答
gradle -macappbundle 插件是我知道的最简单的方法。它连接到您的构建系统并.app
为您生成。
如果您想推出自己的解决方案,Apple 的OS X Java 部署选项会为您提供有关执行此操作所需了解的所有信息。基本上 a.app
只是一个包含 JAR 的文件夹,其中一些 XML 文件给出了类路径等等。您可以阅读该指南以了解所有详细信息。
不,应用程序包含许多其他内容。如果你想让 jar 运行,你必须设置一些东西来告诉它被 JRE 打开。不建议这样做。
导出时必须选择 Runnable Jar File,然后双击它就会运行。
有(至少)两个独立的 Ant 任务可以获取一个 JAR 文件和相关资源并构建一个.app
包。java.net中的appbundler 任务.app
生成在 Oracle Java 7 JRE 上运行的包,而jarbundler 任务生成在 Apple 提供的 Java 6 上运行的包。但是这两个任务都不会产生.app
可以在 Java 6 和 7 上运行的程序,因为 Oracle (7) 和 Apple (6) Java 使用完全不同的 API 从.app
. 如果您希望能够将 Java 应用程序发布到 Mac App Store,那么您必须使用 Java 7 并将 JRE 的副本嵌入到.app
捆绑(appbundle 可以为您做的)。相反,如果您希望您的应用程序可以在 Mac OS X 10.6 或更早版本上运行,那么您需要使用 Java 6。
您对其他答案之一的评论表明您的应用需要本机库。您需要将此库.app
与您的 JAR 一起放入包中。.jnilib
需要进入Java Contents/Resources/Java
6 包(与 JAR 文件相同的位置),对于 Java 7 包,您在文件集中指定库,<librarypath>
它将由 appbundler ( Contents/MacOS
) 复制到正确的位置。