我正在尝试使用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>
谢谢!
最佳答案
好吧,所以,经过一番游戏之后,这就是我的理解...
lib
目录中。您将需要创建此目录... AppBundler
Task Docs 蚂蚁脚本应基于以下框架...
<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
的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>
就个人而言,我将其保留为
bundleapp
,但这就是我...3-
delete
的mkdir
,outputdirectory
和bundleapp
属性相关...<delete dir="appBundle" failonerror="false"/>
<mkdir dir="appBundle"/>
<bundleapp outputdirectory="bundle"...
将它们全部设为
appBundle
或bundle
,让它们随心所欲...4-您的主类不太可能是
ragemage.src.Window
,可能会是Window