The Java compiler does the following?
1) checks a bytecode program in a ".class" file for run-time errors and if there are none, it generates source code for that program in a ".java" file
2) checks a source code program in a ".java" file for run-time errors and if there are none, it generates bytecode for that program in a ".class" file
3) checks a source code program in a ".java" file for compile-time errors and, if there are none, it generates bytecode for that program in a ".class" file
4) checks a bytecode program in a ".class" file for compile-time errors and if there are none, it generates source code for that program in a ".java" file
5) none of the above