package test; import java.io.*; import java.util.GregorianCalendar; import javassist.*; public class JAVASSIST_HelloWorldBuilder { public static void main( String[] args ) { try { double startTime = new GregorianCalendar().getTimeInMillis(); CtClass helloClass = ClassPool.getDefault().makeClass("HelloWorld"); CtMethod m = CtNewMethod.make( "public static void main(String[] argv) { " + "java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(System.in)); " + "java.lang.String name = null; " + "try { " + " System.out.print(\"Please enter your name> \"); " + " name = in.readLine(); " + "} catch(java.io.IOException e) { return; } " + "System.out.println(\"Hello, \" + name); }", helloClass); helloClass.addMethod(m); double endTime = new GregorianCalendar().getTimeInMillis(); System.out.println("Class created in " + (endTime-startTime) + " ms"); File f = new File("HelloWorld.class"); helloClass.toBytecode(new DataOutputStream(new FileOutputStream(f))); } catch( CannotCompileException e ) { e.printStackTrace(); } catch( IOException e ) { e.printStackTrace(); } } }