Java プログラムは、アプリケーションとアプレットという 2 つの形式で作成されます。
Java アプリケーションを実行するには、コマンド行から Java インタプリタを呼び出し、コンパイル済みアプリケーションを持つファイルを指定します。
Java アプレットは、ブラウザから呼び出します。ブラウザによって解釈される HTML コードは、コンパイル済みアプレットを持つファイル名を指定します。こうすると、ブラウザは Java インタプリタを呼び出し、インタプリタがアプレットをロードして実行します。
例 2-1 は、"Hello World" を標準出力に表示するだけのアプリケーションのソースです。メソッドは、呼び出し時に引数を受け入れますが、それらを使用して何も行いません。
//
// HelloWorld Application
//
class HelloWorldApp{
	public static void main (String args[]) {
		System.out.println ("Hello World");
	}
}
C と同様に最初に実行されるメソッド、すなわち関数は main として識別されます。キーワード public によって、メソッドは誰でも実行できます。static は main に HelloWorldApp クラスを参照させ、クラスの他のどのインスタンスも参照させません。void は main が何も戻さないことを示し、args[] は String 型の配列を宣言しています。
アプリケーションは、次のようにコンパイルします。
$ javac HelloWorldApp.java  | 
また、次のように実行します。
$ java HelloWorldApp arg1 arg2 ...  | 
例 2-2 は、例 2-1 のアプリケーションと同等のアプレットのソースです。
//
// HelloWorld Applet
//
import java.awt.Graphics;
import java.applet.Applet;
public class HelloWorld extends Applet {
	public void paint (Graphics g) {
		g.drawstring ("Hello World", 25, 25);
	}
}
アプレットでは、参照されているすべてのクラスを明示的に取り込ま (import) なければなりません。キーワード public と void は、アプリケーションの場合と同じことを意味しています。extends は、HelloWorld クラスが Applet クラスから継承することを示しています。
アプレットは、次のようにコンパイルします。
$ javac HelloWorld.java  | 
アプレットは、HTML コードによってブラウザで呼び出されます。アプレットを実行するための最小限の HTML ページは次のとおりです。
<title>Test</title> <hr> <applet code="HelloWorld.class" width=100 height=50> </applet> <hr>