klump - often found no-style code: pretty - after indentation. See typical errors in the createClass-method.
import java.io.*;
import java.util.Date;
/**

*/
public class JTemplate
{
 public JTemplate (String classname)
 {
 Date d = new Date ();
 String s = createClass ("" + d, classname);
 writeToFile (classname + ".java", s);
 }
 public static void main (String args[])
 {
 if (args.length == 1)
 {
 new JTemplate (args[0]);
 }
 else usage ();
 }
 public static void usage ()
 {
 System.out.println ( "Eine neue Javaklasse aus einem Tempate erzeugen\n");
 System.out.println ( " usage: java JTemplate Classname");
 System.out.println ( " example: java JTemplate FooBar");
 System.out.println ( " generates File FooBar in FooBar.java with a main method\n");
 System.out.println ( "(c) 2006 Stefan Wagner, Berlin, Sch\u00efneberg");
 }
 public String createClass (String date, String name)
 {
 StringBuffer sb = new StringBuffer (2000);
 sb.append ("// package\n");
 sb.append ("\n");
 sb.append ("// import\n");
 sb.append ("/**\n");
 sb.append (" " + name + "\n");
 sb.append ("\n");
 sb.append (" @author Stefan Wagner\n");
 sb.append (" @date "+ date + "\n");
 sb.append ("\n");
 sb.append ("*/\n");
 sb.append ("public class " + name + "\n");
 sb.append ("{\n");
 sb.append ("\n");
 sb.append (" /** */\n");
 sb.append (" public " + name + " (String param)\n");
 sb.append (" {\n");
 sb.append ("\n");
 sb.append (" }\n");
 sb.append ("\n");
 sb.append (" /** */\n");
 sb.append (" public static void main (String args[])\n");
 sb.append (" {\n");
 sb.append (" String param = null;\n");
 sb.append (" if (args.length == 1)\n");
 sb.append (" {\n");
 sb.append (" param = args[0];\n");
 sb.append (" }\n");
 sb.append (" // usage ();\n");
 sb.append (" // System.exit (1);\n");
 sb.append (" // " + name + " app = new " + name + " ();\n");
 sb.append (" new " + name + " (param);\n");
 sb.append (" }\n");
 sb.append ("\n");
 sb.append (" /** */\n");
 sb.append (" public static void usage ()\n");
 sb.append (" {\n");
 sb.append (" System.out.println (\"Usage:\tjava " + name + " param\");\n");
 sb.append (" }\n");
 sb.append ("}\n");
 return sb.toString ();
 }
 public void writeToFile (String filename, String text)
 {
 File file = new File (filename);
 if (file.exists ())
 {
 System.err.println ("File exists - exiting");
 System.exit (1);
 }
 try
 {
 file.createNewFile ();
 }
 catch (IOException e)
 {
 e.printStackTrace ();
 System.exit (2);
 }
 try
 {
 BufferedWriter out = new BufferedWriter (new FileWriter (file, true));
 out.write (text);
 out.close ();
 }
 catch (IOException e1)
 {
 e1.printStackTrace ();
 }
 }
}
import java.io.*;
import java.util.Date;
/**
*/
public class JTemplate
{
	public JTemplate (String classname)
	{
		Date d = new Date ();
		String s = createClass ("" + d, classname);
		writeToFile (classname + ".java", s);
	}

	public static void main (String args [])
	{
		if (args.length == 1)
		{
			new JTemplate (args [0]);
		}
		else usage ();
	}

	public static void usage ()
	{
		System.out.println ("Eine neue Javaklasse aus einem Tempate erzeugen\n");
		System.out.println (" usage: java JTemplate Classname");
		System.out.println (" example: java JTemplate FooBar");
		System.out.println (" generates File FooBar in FooBar.java with a main method\n");
		System.out.println ("(c) 2006 Stefan Wagner, Berlin, Sch\u00efneberg");
	}

	public String createClass (String date, String name)
	{
		StringBuffer sb = new StringBuffer (2000);
		sb.append ("// package\n");
		sb.append ("\n");
		sb.append ("// import\n");
		sb.append ("/**\n");
		sb.append (" " + name + "\n");
		sb.append ("\n");
		sb.append (" @author Stefan Wagner\n");
		sb.append (" @date "+ date + "\n");
		sb.append ("\n");
		sb.append ("*/\n");
		sb.append ("public class " + name + "\n");
		sb.append ("{
			\n");
			sb.append ("\n");
			sb.append (" /** */\n");
			sb.append (" public " + name + " (String param)\n");
			sb.append (" {
				\n");
				sb.append ("\n");
				sb.append ("}\n");
			sb.append ("\n");
			sb.append (" /** */\n");
			sb.append (" public static void main (String args [])\n");
			sb.append (" {
				\n");
				sb.append (" String param = null;\n");
				sb.append (" if (args.length == 1)\n");
				sb.append (" {
					\n");
					sb.append (" param = args [0];\n");
					sb.append ("}\n");
				sb.append (" // usage ();\n");
				sb.append (" // System.exit (1);\n");
				sb.append (" // " + name + " app = new " + name + " ();\n");
				sb.append (" new " + name + " (param);\n");
				sb.append ("}\n");
			sb.append ("\n");
			sb.append (" /** */\n");
			sb.append (" public static void usage ()\n");
			sb.append (" {
				\n");
				sb.append (" System.out.println (\"Usage:\tjava " + name + " param\");\n");
				sb.append ("}\n");
			sb.append ("}\n");
		return sb.toString ();
	}

	public void writeToFile (String filename, String text)
	{
		File file = new File (filename);
		if (file.exists ())
		{
			System.err.println ("File exists - exiting");
			System.exit (1);
		}
		try
		{
			file.createNewFile ();
		}
		catch (IOException e)
		{
			e.printStackTrace ();
			System.exit (2);
		}
		try
		{
			BufferedWriter out = new BufferedWriter (new FileWriter (file, true));
			out.write (text);
			out.close ();
		}
		catch (IOException e1)
		{
			e1.printStackTrace ();
		}
	}
}

syntax highlighted by Code2HTML, v. 0.9.1