Free Java Compilers, Java to Native Code Compilers, Java Development Kits (JDK)
Sun Microsystems' Java Development Kit (JDK) (Java SE) http://java.sun.com/javase/index.jsp
You can get free Java Development Kits for a number of platforms (Windows, Linux, Solaris SPARC, Solaris x86) from the creator of Java. The kits include the Java compiler, Java debugger and Java class libraries for generating Java bytecode. I find this compiler rather slow.
GNU Compiler for the Java Programming Language (GCJ)
http://gcc.gnu.org/java/
This Java compiler is developed independently of the one by Sun. It is able to generate both Java bytecode and native machine code, as well as convert Java bytecode into native machine code (so theoretically you can even use this compiler to convert a Java program compiled by another compiler into a native binary/executable). Your compiled applications can also be a mixture of compiled native code and Java bytecode. It comes with its own class libraries and garbage collector. The advantage of this compiler over Sun's is its ability to generate native machine code and its wide cross-platform availability. Supported platforms include Windows, Linux, AIX, DOS, Renesas, HP-UX, SCO OpenServer/Unixware, Solaris, SGI, IRIX, Digital Unix, OS/2, and so on (too many to list).
Jikes Java Compiler
http://jikes.sourceforge.net/
Jikes is a Java compiler that is supposedly faster than most other compilers. It is also able to compute the dependency requirements in programs and so generate makefiles. If you want faster development cycles, you might also fancy its ability to perform incremental compilations. Platforms supported: Windows 95/NT, AIX, OS/2, Linux, Solaris Sparc. The compiler handles constructs exactly according to the Java specifications. Source code is available under an open source licence (IBM Public License).
Toba (Java to C Compiler)
http://www.cs.arizona.edu/sumatra/toba/
Toba translates Java applications to C source files, from which you can compile into native executables (binaries). The program is distributed in source code form, and has been tested on Linux, Irix 6.2 and Solaris 2.5. Note that this compiler is no longer being maintained, and uses only the old JDK 1.1.
Free Java AssemblersJava Bytecode Assembler
http://tinf2.vub.ac.be/~dvermeir/courses/compilers/javaa/
This is an assembler that converts Java "assembly language" into valid Java class files. The input language is similar to that generated by Sun's javap utility.
Jasmin
http://jasmin.sourceforge.net/
According to the website, Jasmin "takes ASCII descriptions for Java classes, written in a simple assembler-like syntax using Java Virtual Machine instruction set" and generates a Java class file.