Four steps to a running application

package oata;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}


After finishing the java-only step we have to think about our build process. We have to compile our code, otherwise we couldn't start the program. Oh - "start" - yes, we could provide a target for that. We should package our application. Now it's only one class - but if you want to provide a download, no one would download several hundreds files ... (think about a complex Swing GUI - so let us create a jar file. A startable jar file would be nice ... And it's a good practise to have a "clean" target, which deletes all the generated stuff. Many failures could be solved just by a "clean build".

By default Ant uses build.xml as the name for a buildfile, so our .\build.xml would be:

<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>

Now you can compile, package and run the application via

ant compile

ant jar

ant run

Or shorter with

ant compile jar run

While having a look at the buildfile, we will see some similar steps between Ant and the java-only commands:

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"/>

            

你可能感兴趣的:(application)