如何从eclipse程序构建Mac OS X .app

时间:2013-01-22 19:22:24

标签: java eclipse macos slick2d

我的程序在Eclipse中运行良好。但是,如果我尝试将其导出为可运行的jar,当我双击它时,jar就不会打开。在Eclipse中,有没有办法直接导出到.app?

4 个答案:

答案 0 :(得分:5)

gradle-macappbundle plugin是我知道如何做到这一点的最简单方法。它会挂钩到您的构建系统并为您生成.app


如果您想推出自己的解决方案,Apple的Java Deployment Options for OS X会为您提供执行此操作所需的所有信息。基本上.app只是一个包含JAR的文件夹,其中一些XML文件提供了类路径等等。您可以阅读该指南以了解所有细节。

答案 1 :(得分:0)

没有。应用程序包含许多其他内容。如果你想让jar运行,你必须设置一些东西来告诉它由JRE打开。不建议那样。

答案 2 :(得分:0)

(至少)有两个单独的Ant任务可以获取JAR文件和相关资源并构建.app包。来自java.net的appbundler task生成在Oracle Java 7 JRE上运行的.app个捆绑包,jarbundler task生成在Apple提供的Java 6上运行的捆绑包。但是这两个任务都不会产生可以在Java 6和7上运行的.app,因为Oracle(7)和Apple(6)Javas使用根本不同的API来从.app中的启动程序存根中生成JVM 。如果您希望能够将Java应用程序发布到Mac App Store,那么您必须使用Java 7并在.app包中嵌入JRE的副本(appbundler可以为您执行此操作)。相反,如果您希望您的应用程序可以在Mac OS X 10.6或更早版本上运行,那么您需要使用Java 6.

您对其中一个答案的评论表明您的应用需要本机库。您需要将此库与JAR一起放在.app包中。 .jnilib需要进入Contents/Resources/Java以获取Java 6捆绑包(与JAR文件相同的位置),对于Java 7捆绑包,您在<librarypath>文件集中指定了库,它将由appbundler(Contents/MacOS)复制到正确的位置。

答案 3 :(得分:0)

导出时必须选择Runnable Jar File,然后双击它时会运行。