- Java compiler
A Java compiler is a
compiler for the Java programming language. The most common form of output from a Java compiler are Java class files containing platform-neutralJava bytecode . There exist also compilers emitting optimized native machine code for a particular hardware/Operating system combination.Most Java-to-bytecode compilers,
Jikes being a well known exception, do virtually no optimization, leaving this untilruntime to be done by theJRE Fact|date=April 2007.The
Java Virtual Machine (JVM) loads the class files and either interprets thebytecode or just-in-time compiles it tomachine code and then possibly optimizes it usingdynamic compilation .The very first Java compiler developed by Sun Microsystems was written in C using some libraries from C++.Fact|date=February 2007
Major Java compilers
As of 2006, the following are major Java
compiler s:*
javac , included in JDK fromSun Microsystems , open-sourced since13 November 2006 .
*GCJ , a part of gcc which compiles C,Fortran , Pascal and otherprogramming language s besides Java. It can also generatenative code using the back-end of gcc.
* ECJ, the Eclipse Compiler for Java, is an open sourceincremental compiler used by the Eclipse JDT.
*Jikes , anopen source compiler fromIBM , which is written inC++ and uses a variant ofstatic single assignment form for optimization. As of early 2007 the project is no longer being actively developed [The last 1.22 version is of October 2004 [http://sourceforge.net/project/showfiles.php?group_id=128803] . The project CVS activity for the last 12 months is null [http://sourceforge.net/project/stats/detail.php?group_id=128803&ugn=jikes&type=cvs&mode=12months] ] .
*Excelsior JET (commercial) also compiles Java to Windows and Linux binary executables and packages them for deployment.References
External links
* [http://openjdk.java.net/groups/compiler/ Sun's OpenJDK javac page]
* [http://jikes.sourceforge.net/ Jikes homepage]
* [http://www.jcp.org/en/jsr/detail?id=199 JSR 199] Java Compiler APIJava Specification Request for invoking the Java compiler from a Java program
Wikimedia Foundation. 2010.