Example

To illustrate the Builder tool, we want to build the rather simple example Figure HelloWorld.java:

After compilation of this class using javac, it can be executed using the Jamaica Virtual Machine as follows

  > jamaicavm HelloWorld
      
              Hello        World!
           Hello       World!
        Hello     World!
     Hello    World!
   Hello   World!
 Hello  World!
Hello World!
Hello World!
Hello World!
Hello World!
 Hello  World!
   Hello   World!
     Hello    World!
        Hello     World!
           Hello       World!
              Hello        World!
                 Hello         World!
...
    
  

During this execution, the class file HelloWorld.class and several system classes like String.class where loaded by Jamaica from the directories specified in the current CLASSPATH. To create a standalone application, we use the Builder:

  > jamaica HelloWorld
      
Jamaica Builder Tool
 + HelloWorld.c
 + HelloWorld.makefile
Classfile compaction gain: 53.394516% (267947 ==> 124878)
gcc "-O0" -o HelloWorld.o -c HelloWorld.c -DNDEBUG -I /fzi/swt/siebert/JamSun/src//bin/../include/
gcc -o HelloWorld /fzi/swt/siebert/JamSun/src//bin/../obj/32/java_lang_Class.o ...
strip HelloWorld
>
    
  

The created file HelloWorld is a single executable file that contains all the classes required by the application to execute. It can directly be used to run the example:

  > ./HelloWorld
      
              Hello        World!
           Hello       World!
        Hello     World!
     Hello    World!
   Hello   World!
 Hello  World!
Hello World!
Hello World!
Hello World!
Hello World!
 Hello  World!
   Hello   World!
     Hello    World!
        Hello     World!
           Hello       World!
              Hello        World!
                 Hello         World!
...