Java programming is widely spread today. At the same time, often such concepts as Java compiler and Java interpreter are confusing and people cannot adequately distinguish them. In this respect, it is important to understand that, in spite certain similarities, Java compiler and Java interpreter are different concepts.
A Java compiler compiles source files to bytecode files (Behzad, 85). In fact, Java class files are the most common form of output containing platform-neutral Java bytecode. Today, a Java compiler is widely used since the Java programming language is growing to be more and more popular due to its relative simplicity in use and reliability. As a result, users prefer a Java compiler and widely use it.
However, people often talk about a Just-in-Time compiler, which is actually a part of the Java Virtual Machine, i.e. Java interpreter (Andrew, 149). Its purpose is to take generic bytecodes and compile them into more machine-specific instructions. Even though Just-in-Time is defined as compiler, it is a part of the Virtual Machine and, hence, it is a Java interpreter.
At the same time, it is important to understand that in spite of certain differences both a Java compile and a Java interpreter are important because they complement each other and make their functioning highly efficient.
Taking into account all above mentioned, it is possible to conclude that a Java compiler and a Java interpreter are different. The main difference can be found in their function since a Java compiler compiles files, while a Java interpreter reads and executes files.