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

6

我的程序在Eclipse中运行良好。但是,如果我尝试将其导出为可运行的jar文件,则双击时该jar文件不会打开。在Eclipse中是否有一种直接导出为.app文件的方法?


你需要一个可以双击运行的程序还是需要一个 .app 文件?如果你成功运行了 .jar 文件,那么这是否是一个令人满意的解决方案呢? - Niklas
其实,我现在明白为什么制作 .jar 文件对我不起作用了。在 Eclipse 中,我的数据文件夹在 src 之外。因此,现在每当我尝试运行一个 .jar 文件时,数据文件夹必须与 .jar 文件在同一个目录下。 - Impmaster
4个回答

5
gradle-macappbundle插件是我所知道的最简单的方法。它与您的构建系统连接,并为您生成.app文件。
如果您想自己开发解决方案,Apple的OS X Java部署选项提供了关于如何进行这种操作的所有信息。基本上,一个.app只是一个包含JAR文件的文件夹,其内有一些XML文件指定类路径等。您可以阅读该指南获得所有详细信息。

0

不是所有的应用程序都只包含一个jar文件。如果你想让这个jar文件运行,你需要设置一些东西来告诉JRE打开它。但我不建议这样做。


好的。我怎样才能在Eclipse中创建可运行的Jar文件?如果我尝试使用默认导出,我会得到以下错误:Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path - Impmaster
жҲ‘еңЁMacдёҠдҪҝз”ЁJavaе·Із»Ҹжңүиҝ‘еҚҒе№ҙдәҶпјҢд»ҺжңӘи§ҒиҝҮиҝҷз§Қжғ…еҶөгҖӮдҪ жҳҜз”ЁJREиҝҳжҳҜJDKжһ„е»әзҡ„пјҹе“ӘдёӘзүҲжң¬пјҹ - Rob
嗯...我不知道那些是什么。另外,lwjgl是一个游戏库,这可能就是你从未见过它的原因? - Impmaster
@Impmaster,你需要将LWJGL添加到你的构建路径中。 - tckmn
我在Eclipse中完成了这个任务,在Eclipse中它可以正常工作。但是如果我已经构建了一个jar文件,那么如何将LWJGL添加到我的构建路径中呢? - Impmaster

0

至少有两个独立的Ant任务可以获取一个JAR文件和相关资源并构建一个.app包。来自java.net的appbundler任务生成在Oracle Java 7 JRE上运行的.app包,而jarbundler任务生成在由Apple提供的Java 6上运行的包。但是,由于Oracle(7)和Apple(6)Java使用基本不同的API从启动器存根中生成JVM,因此任何任务都无法生成可以在Java 6和7上运行的.app。如果您想将Java应用发布到Mac App Store,则必须使用Java 7并嵌入JRE的副本到.app包中(appbundler可以为您完成此操作)。相反,如果您希望您的应用程序可在Mac OS X版本10.6或更早版本上运行,则需要使用Java 6。

你在另一个答案中的评论表明你的应用程序需要本地库。你需要将此库与JAR文件一起放入.app包中。对于Java 6包(与JAR文件相同的位置),.jnilib需要放在Contents/Resources/Java中,对于Java 7包,您需要在<librarypath>文件集中指定库,然后它将被appbundler复制到正确的位置(Contents/MacOS)。


0

当你导出时,必须选择可运行的Jar文件,然后双击它即可运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接