As we know, one of the key steps in programming with Java is compiling the source code into bytecode. The Java Virtual Machine (JVM) helps execute the Java bytecode. The compiler helps to translate the source code into bytecode in Java.
In this article, we’ll explore two popular compilers in Java and the key differences between the two.
2. What Is javac?
javac is a Java program that accepts Java source code and produces bytecode for the JVM to execute. It’s the official Java compiler. By default, the Java Development Kit (JDK) contains javac.
Primarily, it’s a command-line tool. It can process annotations in classes and Java source files. The compiler supports diverse command-line options to customize the compilation process. It’s a standalone tool, and we can also use it in an Integrated Development Environment (IDE).
Let’s see a simple use case of javac:
$ javac Hello.java
The example assumes that we have a source code, Hello.java. Then, we invoke the javac command, which compiles the source code to bytecode. It produces a bytecode with the .class extension.
Finally, we can run the bytecode with the java command:
$ java Hello
3. What Is the Eclipse Compiler?
The Eclipse Integrated Development Environment (IDE) incorporates the Eclipse Compiler for Java (ECJ). Instead of javac, Eclipse implements its own compiler. It helps to compile Java source code into bytecode that the JVM can execute.
Simply put, we can easily customize the compiler in Eclipse IDE through settings. With the Eclipse compiler, we can write, compile and run Java code in the Eclipse IDE without installing Java SDK.
4. Difference Between javac and the Eclipse Compiler
The two compilers can compile a source code into a bytecode effectively. But these two tools differ in some respect. To begin with, the javac compiler is a standalone tool that can be executed from the terminal. However, unlike javac, the Eclipse compiler is integrated with the Eclipse IDE.
The Eclipse compiler can perform incremental compilation. This makes it to compile the parts of the code that have changed since the last compilation. Additionally, the Eclipse compiler can perform on-the-fly code analysis. This process provides suggestions for improving code quality. It also gives more comprehensive error messages and warning than the javac.
Furthermore, javac supports options that allow a programmer to customize the compilation process. On the other hand, the Eclipse IDE provides options to customize the Eclipse compiler via settings.
Finally, broken code can be run with the Eclipse compiler. It issues a warning if there’s an error in a source code. Then asks the programmer if the compilation process should proceed despite the error. This can be useful if we only have an interest in a section of code while testing.
In this article, we reviewed two popular Java compilers and their usage mode. Additionally, we looked at the difference between javac and Eclipse compilers.
We established that javac is a standalone command-line tool, and the Eclipse compiler is built in the Eclipse IDE with many advanced features.