GCJ - uma implementação Java independente
GCJ é o GNU Compiler for Java produzido sob os auspícios da Free Software Foundation. A Free Software Foundation trabalha em um sistema operacional livre completo, semelhante ao Unix, chamado GNU - GNU's Not Unix, desde 1983. O software GNU também é muito usado pelo Linux para fornecer bibliotecas e comandos do sistema. Embora o Java esteja disponível gratuitamente na Sun Microsystems desde o seu início em 1995, não foi até meados de 2007 que a Sun disponibilizou a maior parte de seu software Java como software livre, no sentido em que a Free Software Foundation e muitos programadores e usuários de computador significar. Embora fosse de uso gratuito, a licença incluía várias restrições sobre como você poderia usá-la. Em particular, você não pode alterar o código-fonte para atender às suas necessidades e redistribuí-lo livremente. O GCJ foi criado para fornecer uma implementação totalmente gratuita do Java. Com a maior parte do Java agora coberta por uma licença livre e de código aberto, algumas pessoas podem acreditar que não há necessidade de um projeto como o GCJ. No entanto, acredito que, à medida que o Java amadurece, esforços como esse são ainda mais importantes. Por um lado, o GCJ inclui ferramentas que permitem aos programadores misturar facilmente códigos C ++ e Java, o que facilita o uso de bibliotecas existentes em qualquer idioma. Além disso, se a linguagem Java alguma vez passar pelo processo de padrões ANSI ou ISO, como muitas outras linguagens, é importante ter várias implementações. Projetos como o GCJ também oferecem às pessoas interessadas a oportunidade de explorar em profundidade como o Java é implementado. Para mim, o principal motivo para usar o GCJ é usar projetos que dependem dele - geralmente porque eles usaram a CNI para estender o Java com métodos escritos em C ++ ou para usar métodos Java como classes C ++. Você pode encontrar uma lista de alguns desses projetos aqui.

Você pode obter o GCJ como parte da GNU Complier Collection, GCC. A página inicial do GCJ pode ser encontrada em //gcc.gnu.org/java/index.html.