Machine Neutral
The compiler converts the source code files into byte code files. These codes are machine independent and therefore can be run of any machine. That is a program compiled on IBM machine will run on Macintosh machine.
Java interpreter reads the byte code files and translates them into machine code for the specific machine on which the java program is running . The interpreter is therefore specially written for each type machine .