View RSS Feed

My Java Tips

Java Compiler API (brief intro)

Rate this Entry
by , 11-28-2011 at 06:49 PM (1278 Views)
We all know that javac command is used to compile the java classes. Even if we are using some IDE (Eclipse, JBuilder, NetBeans), javac is called at the background for compilation. But with the release of Java 6, it has become possible to compile Java class from a Java class.


The classes related to Java compiler are packed into javax.tools package.

There is a class called ToolProvider (javax.tools) whose getSystemJavaCompiler() method returns an instance of some class that implements the JavaCompiler interface. Now we can use this compiler instance to create a compilation task that will perform the actual compilation. We have to provide the classes to be compiled to the compilation task. The compiler API provides a file manager abstraction called JavaFileManager for this. The JavaFileManager is used to allow Java files to be retrieved from various sources.

Lets review the code snippet:

Java Code:
//Get an instance of java compiler
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

//Get a new instance of the standard file manager implementation
StandardJavaFileManager fileManager = compiler.
        getStandardFileManager(null, null, null);

// Get the list of java file objects, in this case we have only
// one file, TestClass.java
Iterable compilationUnits1 =
        fileManager.getJavaFileObjectsFromFiles("TestClass.java");

Submit "Java Compiler API (brief intro)" to Facebook Submit "Java Compiler API (brief intro)" to Digg Submit "Java Compiler API (brief intro)" to del.icio.us Submit "Java Compiler API (brief intro)" to StumbleUpon Submit "Java Compiler API (brief intro)" to Google

Tags: ide, javac Add / Edit Tags
Categories
Java SE

Comments