GCJ (GNU Compiler for the Java Programming Language) ist ein Teil der GNU Compiler Collection. GCJ ist sowohl ein Bytecode-Compiler als auch ein Nativecode-Compiler. Er kann Java-Sourcecode zu Java-Bytecode und Java-Byte/Sourcecode zu nativen Maschinencode kompilieren. GCJ benutzt dabei nicht die Klassenbibliotheken von Sun sondern die freie Java-Implentierungen von GNU Classpath. Aufgrund dessen kann es bei manchen Java Programmen zu Problemen kommen weil noch nicht alle Klassen von Sun implementiert sind.