现在的位置: 首页 > 综合 > 正文

Four steps to a running application

2012年01月20日 ⁄ 综合 ⁄ 共 1855字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.