繁体   English   中英

使用JarBundler将Java转换为MacOSX的.app文件

[英]Convert Java to .app file for MacOSX using JarBundler

我所要做的就是将一个简单的java程序转换为macOSX .app文件,这样我就可以将它作为一个简单的可执行文件分发。

我到处都读过,每个人都说同样的话:

  1. 使用Xcode - 据我所知,Xcode不再支持Java Build
  2. 使用Jar Bundler - 所有教程似乎都已过时,但它不起作用。 当我运行:java -jar jarbundler-2.0.0.jar

    控制台返回“jarbundler-2.0.0.jar中没有主要清单属性”

    如果我是对的,那么打包jar文件的人会失败吗? 但我试过从其他网站和其他版本下载它,但我得到了相同的东西。

  3. 他们说你可以自己创建目录和文件,然后将你的文件夹重命名为.app,然后对它运行一个命令,但这很复杂,因为我不确切知道如何创建一个info.plist文件......如果你想这样做,我到目前为止找到的最好的网站就是这个: OSX的Java部署选项

我已将我的代码编译成.jar文件,我有一个图标和所有内容,我需要做的就是以某种方式将其打包到.app文件中。

我在这里先向您的帮助表示感谢!

编辑:我明白了! 经过7或8个小时的搜索和阅读后,它可以工作。 因为我是新手,所以我将发布我所学到的所有东西来拯救那些经历过同样问题的人。 我放弃了自己做的方法,然后回到了JarBundler。 如果其他人正在读这个并且他们对ANT一无所知,那就是我所做的:下载JarBundler,我从这里得到了我的: Mac OS X JarBundler ANT任务并按照其中的说明操作。

下载时,请将jarbundler-2.2.0.jar文件放在此处:

的/ usr /共享/蚂蚁/ lib中

您可能必须运行命令来移动它,例如:

sudo mv jarbundler-2.2.0.jar~ /../../ usr / share / ant / lib / jarbundler-2.2.0.jar

就像我说的那样,我还在学习,但这对我有用。

确保你移动了正确的jarbundler,这是我遇到问题的地方,我移动了整个文件夹,而不是内部.jar文件,所以请确保你移动你下载的文件夹zip里面的.jar,而不是整个东西,否则当你去构建它时,你会得到一个错误,如错误:taskdef class net.sourceforge.jarbundler.JarBundler找不到。

然后你需要将你的代码编译成一个.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文件中命名为target的任何东西,我把它命名为bundle)

祝你好运,希望这有助于那里的任何人。

如果有人想知道,我拿了由JarBundler生成的Info.plist并将其放入我正在制作的目录中并且它有效! 所以这就是问题,我只是不知道如何正确格式化......这里是: Info.plist

在Mac OS X上, 应用程序包是一个名称以.app结尾的目录,其中包含应用程序使用的资源。 这个游戏是一个使用ant 构建脚本 在原位构建bundle的示例。 这里引用其他参考文献。

如果要使用Oracle Java而不是Apple已停产的Java,则应使用Java Application Bundler而不是JarBundler。

另见这些答案:

为我工作! 出于某种原因,我无法将jarbundler .jar文件放在Ant区域中,而是必须从build.xml中明确指出它(我把它放在<projectRoot>/jarbundler/jarbundler-2.2.0.jar ) 。 我的build.xml看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<project name="TripleWhammy" default="default" basedir=".">        
    <taskdef name="jarbundler"
             classname="net.sourceforge.jarbundler.JarBundler"
             classpath="jarbundler/jarbundler-2.2.0.jar" />

    <target name="bundle">
        <jarbundler dir="."
                    name="Triple Whammy"
                    mainclass="org.bigclue.TripleWhammy"
                    jar="target/triple-whammy-1.0-jar-with-dependencies.jar"
                    icon="triple-whammy.icns"/>
    </target>
</project>

这在我的项目目录中创建了“Triple Whammy.app”。 我的图标看起来不错。 甜。

现在我已经构建了一个简单的可分发骰子.app ,时间来构建一些很棒的东西......

(Mac OS X 10.6.8,Java 1.6.0_51,Ant 1.8.4;使用Maven 3.0.4构建我的.jar及其“汇编”插件版本2.4)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM