“Decompile Once, Run Anywhere”
By Godfrey Nolan
Web Techniques, Sept 1997

Web Techniques grants permission to use these listings for private or 
commercial use provided that credit to Web Techniques and the author is 
maintained within the comments of the source. For questions, contact
editors@web-techniques.com.
NOLAN

LISTING ONE


public class Hello
{
    public static void main(String[] args)
    {
        // simple example to demonstrate
        // Mocha decompiler

        String welcome[] = new String[2];
        welcome[0] = "Hello Web Techniques";
        welcome[1] = "From Dublin, Ireland";

        int i;

        for (i=0; i < welcome.length; i++)
            System.out.println(welcome[i]);
    }
}



LISTING TWO



Compiled from Hello.java
public class Hello extends java.lang.Object {
    public static void main(java.lang.String []);
    public Hello();

Method void main(java.lang.String [])
   0 iconst_2
   1 anewarray class #6 <Class java.lang.String>
   4 astore_1
   5 aload_1
   6 iconst_0
   7 ldc #1 <String "Hello Web Techniques">
   9 aastore
  10 aload_1
  11 iconst_1
  12 ldc #2 <String "From Dublin, Ireland">
  14 aastore
  15 iconst_0
  16 istore_2
  17 goto 32
  20 getstatic #9 <Field java.lang.System.out Ljava/io/PrintStream;>
  23 aload_1
  24 iload_2
  25 aaload
  26 invokevirtual #10 <Method 
java.io.PrintStream.println(Ljava/lang/String;)V>
  29 iinc 2 1
  32 iload_2
  33 aload_1
  34 arraylength
  35 if_icmplt 20
  38 return

Method Hello()
   0 aload_0
   1 invokenonvirtual #8 <Method java.lang.Object.<init>()V>
   4 return

}



LISTING THREE


/* Decompiled by Mocha from Hello.class */
/* Originally compiled from Hello.java */

import java.io.PrintStream;

public class Hello
{
    public static void main(String astring1[])
    {
        String astring2[] = new String[2];
        astring2[0] = "Hello Web Techniques";
        astring2[1] = "From Dublin, Ireland";
        for (int i = 0; i < astring2.length; i++)
            System.out.println(astring2[i]);
    }

    public Hello()
    {
    }
}