我尝试使用app bundler
将我的.jar捆绑到MacOSX应用包中。
I'm following this tutorial.
它说要在高级项目目录中添加lib
文件夹,但我不知道这意味着什么。我一直在寻找它,我无法找到它是什么。这是我唯一的问题,有人知道吗?
编辑:
这是我的build.xml
文件:
<project name="Rage Mage" basedir=".">
<taskdef name="ragemage"
classname="com.oracle.appbundler.AppBundlerTask"
classpath="lib/appbundler-1.0.jar" />
<target name="bundle-RageMage">
<delete dir="appBundle" failonerror="false"/>
<mkdir dir="appBundle"/>
<bundleapp outputdirectory="bundle"
name="Rage Mage"
displayname="Rage Mage"
icon="res/icon.icns"
identifier="ragemage.src.Window"
mainclassname="ragemage.src.Window">
<classpath file="dist/ragemage_1.1.1.jar" />
</bundleapp>
</target>
谢谢!
答案 0 :(得分:4)
好的,所以,经过一番游戏后,这就是我所理解的......
lib
目录中。您需要创建此目录... AppBundler
Task Docs ant脚本应该基于以下骨架......
<project name="ButtonDemo" default="bundle-buttonDemo" basedir=".">
<taskdef name="bundleapp"
classname="com.oracle.appbundler.AppBundlerTask"
classpath="lib/appbundler-1.0.jar" />
<!-- See the lib reference here, this is why you need to use the lib directory! -->
<target name="bundle-buttonDemo">
<delete dir="appBundle" failonerror="false"/>
<mkdir dir="appBundle"/>
<bundleapp outputdirectory="appBundle"
name="ButtonDemo"
displayname="Button Demo"
identifier="components.ButtonDemo"
mainclassname="components.ButtonDemo">
<!-- The following is important and should point to your build -->
<classpath file="dist/ButtonDemo.jar" />
<!-- You can have multiple instance of classpath if you 3rd party or
dependent jars in different locations -->
</bundleapp>
</target>
</project>
ant -f {You App Bundler script}
应用程序包,在这种情况下ButtonDemo.app
将在appBundle
目录中创建。如果可以,浏览ButtonDemo.app/Contents/Java
的内容并确保所有必需的Jar文件都在那里......
快乐捆绑!
根据更新的build.xml文件进行了更新
1- default
标记未指定project
目标。想想这就像你的“主类”或“主要”方法,没有,蚂蚁不知道你想要运行什么......
<project name="Rage Mage" basedir="." default="bundle-RageMage">
2- name
的{{1}}非常重要,您可以在任何脚本中使用它来识别当ant到达您的代码引用时应该做什么......
因此,根据您的示例,您需要将taskdef
的名称从taskdef
更改为ragemage
或将bundleapp
标记更改为bundleapp
...
要么改变这个......
ragemage
或此(在目标<taskdef name="bundleapp"
classname="com.oracle.appbundler.AppBundlerTask"
classpath="lib/appbundler-1.0.jar" />
中)
bundle-RageMage
就我个人而言,我将其保留为<ragemage outputdirectory="bundle"
name="Rage Mage"
displayname="Rage Mage"
icon="res/icon.icns"
identifier="ragemage.src.Window"
mainclassname="ragemage.src.Window">
<classpath file="dist/ragemage_1.1.1.jar" />
</ragemage>
,但那就是我......
3- bundleapp
的{{1}},delete
和mkdir
属性相关...
outputdirectory
或者将它们全部bundleapp
或<delete dir="appBundle" failonerror="false"/>
<mkdir dir="appBundle"/>
<bundleapp outputdirectory="bundle"...
,你想要的一切......
4-您的主要课程不大可能是appBundle
,可能会是bundle