??xml version="1.0" encoding="utf-8" standalone="yes"?> 目的准备: 我们希望从不同的来源所产生的文Ӟ因此我们的Java源文件将?/tt>文g夹中?所有生成的文g应根?tt> Qƈ分裂成数个子目录个h步骤Q??/tt>我们汇编文g?/tt> JAR为我们自q白佳文g?br />
在完成仅用JAVA完成后我们必考虑我们的构E。我们必ȝ译我们的代码Q否则我们不能启动这个项目。啊-开?是的Q我们能提供一个目标。我们应该封装我们的应用。现在仅仅只有一个class文gQ不是如果你惌提供一个下载,没有人想下蝲几百文gQ想象一下一个复杂的Swing GUI --所以我们必dZ个JAR文gQ类gEXEq种直接点击可启动E序Q,一个启动JAR文g会很不错。。。而这是一个很好的实践为有一个干净的目标,q会删除所有生成的东西。许多失败将可以解决只因Z?“clean build”Q?br />
默认的情况下Ant使用 build.xml 作ؓ构徏文g的名Uͼ所以我们的.\build.xml 会是:
教程: Hello World with Ant
本文提供了一步一步用ANT开始JAVA目构徏的教E?不包括更深入了解JAVA与ANTQ本教程的目的是Z让你看,使用ANT最单的步骤?/h1>
我们必须创徏一个唯一的src目录Q?br />
md src
接着是创Z个打印固定信息的标准输出的JAVA代码Q所以仅需要写下这些代码到 src\oata\HelloWorld.java. 目录Q?br />
package oata;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
现在我们开始编译和q行Q?br />
md build\classes
javac -sourcepath src -d build\classes src\oata\HelloWorld.java
java -cp build\classes oata.HelloWorld
(q里我想说明下,可能有些新手不知道怎么L译和q行上面的程序,我在q里单演CZQ?br />
首先q行--cmd--q入你项目所在的路径Qcd +目录路径卛_Q:
然后在上面代码拷贝运?br />
)
q行?在控制台打?Hello WorldQƈ且你现在在的工E目录下多了一个build文g?build 下有一个classes文g夹,classes文g夹下正是~译后的HELLOWORLD的class文g,在通过观察Q?br />
md build\classes --在当前项目\径下创徏了build\classes子\?br />
javac -sourcepath src -d build\classes src\oata\HelloWorld.java --~译JAVA文gq将其放到classes目录?br />
java -cp build\classes oata.HelloWorld --q行classes目录下的HelloWorld.java字节码文件?br />
创徏一?jar-file 不是很困难,但是创徏一个启动的 jar-file 需要更多的步骤Q创Z个包含启动的类文gQ创Z个目标目录和归文g:
echo Main-Class: oata.HelloWorld>myManifest
md build\jar
jar cfm build\jar\HelloWorld.jar myManifest -C build\classes .
java -jar build\jar\HelloWorld.jar
注意Q不能有MI格q行?br />
q是成功q行后的目录?br />
四步执行应用Q?/strong>
<project>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="jar">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/HelloWorld.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="oata.HelloWorld"/>
</manifest>
</jar>
</target>
<target name="run">
<java jar="build/jar/HelloWorld.jar" fork="true"/>
</target>
</project>
现在你可以编译打包运行应用了
ant compile
ant jar
ant run
或者更短的命o
ant compile jar run
While having a look at the buildfile, we will see some similar steps between Ant and the java-only commands:
同时我们可以看一下这个构建文Ӟ我们可以看见许多cM的步骤Ant和java命o之间
java-only
Ant
md build\classes
javac
-sourcepath src
-d build\classes
src\oata\HelloWorld.java
echo Main-Class: oata.HelloWorld>mf
md build\jar
jar cfm
build\jar\HelloWorld.jar
mf
-C build\classes
.
java -jar build\jar\HelloWorld.jar
<mkdir dir="build/classes"/>
<javac
srcdir="src"
destdir="build/classes"/>
<!-- automatically detected -->
<!-- obsolete; done via manifest tag -->
<mkdir dir="build/jar"/>
<jar
destfile="build/jar/HelloWorld.jar"
basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="oata.HelloWorld"/>
</manifest>
</jar>
<java jar="build/jar/HelloWorld.jar" fork="true"/>
增强构徏文g
...(待箋。。今天就暂时译也学习到q里Q对ANT也有了一个初步的认识Q也知道了我们现在项目中的build.xml是用来作甚么的了Q说白了ANT是一个基于XML文g的构建工P可以类gclass?jar啊,通过~译目Q设定相应目标\径,q行一个文件的整理~译发布。。呵?q当然是很肤的Q但是对于项目的应用_了。。不会就对着实例Q在看API了解。。?