free ebooks
 Home Computers & InternetProgramming > Java  
Writing an A hello world Java program Hello World

We'll continue our Ant tutorials with "Hello World," only now we'll execute a Java class. Start by creating a simple hello class as shown below.

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

From the command line, compiling, jarring and executing this class is as simple as:

$ javac hello.java  $ jar -cvf hello.jar hello.class  added manifest  adding: hello.class(in = 415) (out= 285)deflated 31%)  $ java -classpath hello.jar hello  Hello World  

Now let's write an Ant build file to compile. Naturally, you should start by reading the fine manual description of the javac task. We'll just use the srcdir attribute to compile all java files in the directory tree rooted at srcdir.

<project default="compile">    <target name="compile">      <javac srcdir="." />    </target>  </project>  

Executing ant from the command line:

$ rm *.class  $ ant -f hello.xml compile  Buildfile: hello.xml

compile: [javac] Compiling 1 source file

BUILD SUCCESSFUL Total time: 4 seconds

Now, let's add a target to create the jar (added lines are shown in bold). The destfile attribute is required and both the basedir and the includes attributes are necessary in this case. The jar file will only contain the manifest file without the basedir attribute and the includes attribute is required to exclude all the non-class files (in particular, the jar file cannot contain itself). The regular expression used in the includes attribute will match all class files in the directory tree rooted at basedir.

<project default="compile">    <target name="compile">      <javac srcdir="." />    </target>
<target name="jar" depends="compile"> <jar destfile="hello.jar" basedir="." includes="**/*.class" /> </target> </project>

Executing ant from the command line:

$ rm *.jar  $ ant -f hello.xml jar  Buildfile: hello.xml

compile:

jar: [jar] Building jar: /Tutorial/Ant/Jar/hello.jar

BUILD SUCCESSFUL Total time: 2 seconds $ jar -tvf hello.jar jar -tvf hello.jar 0 Wed Jan 22 17:06:32 EST 2003 META-INF/ 55 Wed Jan 22 17:06:32 EST 2003 META-INF/MANIFEST.MF 335 Wed Jan 22 16:36:16 EST 2003 hello.class

Finally, let's add a target to execute our class (added lines in bold). We insure that the jar is always built first by having the execution target run depend upon the jar target. In this example, both the classname and the classpath attributes of the java task are used to completely specify the class to execute eliminating a dependence upon the CLASSPATH environment variable. And we request a new JVM by setting fork="true"; providing the class full access to the java runtime and preventing a call to System.exit() from terminating the ant process.

<project default="compile">    <target name="compile">      <javac srcdir="." />    </target>
<target name="jar" depends="compile"> <jar destfile="hello.jar" basedir="." includes="**/*.class" /> </target>
<target name="run" depends="jar"> <java classname="hello" classpath="hello.jar" fork="true" /> </target> </project>

And execute:

$ant -f hello.xml run  Buildfile: hello.xml

compile:

jar:

run: [java] Hello World

BUILD SUCCESSFUL Total time: 2 seconds
 Additional Info
 
 No. 254
 Posted on 8 June, 2006
 
 
 
Bookmark This Page
Facebook MySpace Twitter Digg stumbleupon friendfeed Delicious

Share
Email
Google

Link to us from your website or blog by using the code below in your html
   
@2008 ebooklobby privacy policy email: info [at] goaheadweb.co.uk