Compile a Java source from inside a Java program

Java programming topics
Post Reply
User avatar
Nipuna
Moderator
Moderator
Posts: 2729
Joined: Mon Jan 04, 2010 8:02 pm
Location: Deraniyagala,SRI LANKA

Compile a Java source from inside a Java program

Post by Nipuna » Mon Apr 16, 2012 7:24 am

Code: Select all


import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.tools.JavaCompilerTool;
import javax.tools.JavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;
import javax.tools.JavaCompilerTool.CompilationTask;

public class JDK6JavaCompilerDemo {

    public static void main (String[] args) {
        String sourceFile = "c:/HelloWorld.Java";
        JavaCompilerTool compiler = ToolProvider.getSystemJavaCompilerTool ();
        StandardJavaFileManager fileManager =
                compiler.getStandardFileManager (null);

        // prepare the source file(s) to compile
        List<File> sourceFileList = new ArrayList <File> ();
        sourceFileList.add (new File (sourceFile));
        Iterable<? extends JavaFileObject> compilationUnits =fileManager.getJavaFileObjectsFromFiles (sourceFileList);
        CompilationTask task = compiler.getTask (null,fileManager, null, null, null, compilationUnits);
        task.run ();
        boolean result = task.getResult ();
        if (result) {
            System.out.println ("Compilation was successful");
        } else {
            System.out.println ("Compilation failed");
        }
        try {
            fileManager.close ();
        } catch (IOException e) {
        }
    }
}

/*
 * import Java.util.Date;
public class HelloWorld {
    public static void main (String[] args) {
        Date date = new Date (1234, 11, 12);
        System.out.println ("[" + date + "] Hello World !");
    }
}
 */

Post Reply

Return to “Java Programming”