我要做的就是将一个简单的 java 程序转换为一个 macOSX .app 文件,这样我就可以将它作为一个简单的可执行文件分发。
我到处阅读,每个人都说同样的话:
- 使用 Xcode - 据我所知,Xcode 不再支持 Java 构建
使用 Jar Bundler - 所有的教程似乎都过时了,而且它不起作用。当我运行时: java -jar jarbundler-2.0.0.jar
控制台返回“jarbundler-2.0.0.jar 中没有主要清单属性”
如果我是对的,这对于打包 jar 文件的人来说将是一个失败,对吗?但我试过从其他网站和其他版本下载它,但我得到了同样的东西。
他们说您可以自己创建目录和文件,然后将文件夹重命名为 .app ,然后在其上运行命令或其他内容,但这很复杂,因为我不确切知道如何创建 info.plist 文件...如果你想这样做,到目前为止我发现的最好的网站是这个:Java Deployment Options for OSX
我已经将我的代码编译成一个 .jar 文件,我有一个图标和一切,我需要做的就是以某种方式将它打包成一个 .app 文件。
我在这里先向您的帮助表示感谢!
解决方案
编辑:我明白了!经过 7 或 8 小时的搜索和阅读后,它可以工作了。由于我是新手,因此我将发布我学到的所有内容,以拯救遇到同样问题的其他人免于遭受痛苦。我放弃了自己动手的方法,回到了 JarBundler。如果其他人正在阅读本文并且他们对 ANT 一无所知,这就是我所做的:下载 JarBundler,我从这里获得了我的:Mac OS X JarBundler ANT Task并按照那里的说明进行操作。
下载时,将 jarbundler-2.2.0.jar 文件放在这里:
/usr/share/ant/lib
您可能必须运行命令来移动它,例如:
sudo mv jarbundler-2.2.0.jar ~/../../usr/share/ant/lib/jarbundler-2.2.0.jar
就像我说的,我还在学习,但这对我有用。
确保您移动了正确的 jarbundler,这是我遇到问题的地方,我移动了整个文件夹,而不是内部 .jar 文件,因此请确保您移动了您下载的文件夹 zip 中的 .jar,而不是整个文件,否则当你去构建它时,你会得到一个错误,比如 error: taskdef class net.sourceforge.jarbundler.JarBundler could not be found。
然后你需要将你的代码编译成 .jar 文件(有两种类型,一种类似于 .zip,另一种是可执行文件)你想要一个普通的 JAR 文件,而不是可执行文件,所以你首先需要编译获取 .class 文件的代码,然后打开命令提示符并按照此处的说明进行操作:创建 Jar 文件命令将如下所示:
jar cf myName.jar *.class
获得 jar 文件后,您需要在同一文件夹中创建一个 .xml 文件,并且需要将其命名为 build.xml。使用文本编辑器对其进行编辑。按照上面链接上的说明创建它。它看起来像这样:
//build.xml
<project name="MyProject">
<taskdef name="jarbundler"
classname="net.sourceforge.jarbundler.JarBundler" />
<target name="bundle">
<jarbundler dir="release"
name="Apollo's Image Editor"
mainclass="ImageEditorGUI"
jar="ApolloIE.jar"
icon="Aperture.icns" />
</target>
</project>
从那里(顺便说一下,我使用的是 Macbook Pro),您所要做的就是从该文件夹运行命令行:
蚂蚁束
它应该在一个名为 release 的文件夹中创建一个 .app 文件。总结一下:你只需要你的 .jar 文件和 build.xml 文件在同一个文件夹中,然后运行命令:ant bundle (或者你在 build.xml 文件中命名你的目标,我将它命名为 bundle)
祝你好运,希望这对那里的任何人都有帮助。
如果有人想知道,我将 JarBundler 生成的 Info.plist 放入我正在制作的目录中,它就可以工作了!所以这就是问题所在,我只是不知道如何正确格式化它......这里是:Info.plist