GNU Classpath - GNU Classpath

GNU Classpath
GNU Classpath badge.png
Captura de tela
GC SwingDemo.png
Demonstração do GNU Classpath Swing
Desenvolvedor (s) Projeto GNU
(formalmente mantido pela FSF )
Último lançamento
0,99 / 16 de março de 2012 ; 9 anos atrás  ( 16/03/2012 )
Repositório Edite isso no Wikidata
Escrito em C e Java
Sistema operacional Plataforma cruzada
Modelo Biblioteca
Licença Exceção de vinculação GPL
Local na rede Internet www .classpath .org

GNU Classpath é uma implementação de software livre da biblioteca de classes padrão para a linguagem de programação Java . A maioria das classes de J2SE 1.4 e 5.0 são implementadas. Classpath pode, portanto, ser usado para executar aplicativos baseados em Java . GNU Classpath é uma parte do Projeto GNU . Ele foi originalmente desenvolvido em paralelo com libgcj devido a incompatibilidades de licença, mas posteriormente os dois projetos se fundiram.

GNU Classpath foi considerado um projeto de alta prioridade pela Free Software Foundation . Quando o projeto Classpath começou, a licença para a implementação oficial do Java da Sun Microsystems não permitia a distribuição de quaisquer alterações. Desde o início do projeto Classpath, o OpenJDK foi lançado sob a GPL e agora serve como implementação de referência oficial para a plataforma Java .

Licença

GNU Classpath é licenciado sob a GNU General Public License com uma exceção de link . Esta é uma licença de software livre . Todo o código é formalmente propriedade da Free Software Foundation , e este proprietário está sujeito às suas próprias obrigações contratuais para com os desenvolvedores.

Usos

GNU Classpath é usado por muitos tempos de execução Java gratuitos (como Kaffe , SableVM , JamVM , Jikes RVM e VMKit) porque cada máquina virtual Java com recursos completos deve fornecer uma implementação das bibliotecas de classes padrão.

Alguns outros usos incluem:

  • O GNU Compiler for Java , que é capaz de compilar código Java em executáveis ​​autônomos nativos.
  • GCJAppletViewer para iniciar miniaplicativos Java da linha de comando se eles não forem suportados pelo navegador em uso.
  • IKVM.NET , que integra Java com o .NET Framework
  • JNode, um sistema operacional para executar aplicativos Java. Este sistema é escrito apenas em Java e em assembler.
  • Máquinas virtuais especializadas como Jaos para integração com a linguagem de programação Oberon e JamaicaVM para sistemas embarcados com garantias em tempo real.
  • Máquinas virtuais para computação distribuída com clusters, com até 128 processadores Myrinet .
  • O projeto IcedTea usou GNU Classpath como um substituto para elementos proprietários do OpenJDK , antes de sua substituição upstream.

História

O desenvolvimento do GNU Classpath começou em 1998 com cinco desenvolvedores. Ao longo da história, ele se fundiu várias vezes com outros projetos com objetivos semelhantes ( Kaffe , libgcj). No passado, o GNU Classpath fornecia sua própria máquina virtual (Japhar). Como Classpath estava se tornando uma biblioteca base, compartilhada com muitos projetos diferentes, essa máquina virtual recebia cada vez menos atenção e agora não é mais suportada.

Depois de implementar a maior parte da API Java 1.4 oficial, o trabalho no projeto tornou-se mais orientado para bugs do que orientado para cobertura de API. Em 24 de outubro de 2006, a implementação da última classe 1.4 ausente, HTMLWriter , foi confirmada. A velocidade de desenvolvimento (calculada matematicamente como o número médio de novas linhas de código por dia) atingiu o maior nível de sua história em 2006.

O nome GNU Classpath foi originalmente sugerido por Bradley M. Kuhn a um dos primeiros desenvolvedores, Paul Fisher. Na época, havia uma grande preocupação na comunidade de implementações gratuitas de Java sobre a aplicação da marca comercial da Sun em Java contra implementações gratuitas. Kuhn sugeriu o nome $ CLASSPATH , que é a variável de ambiente usada pela maioria dos sistemas Java para indicar onde as bibliotecas Java residem no computador. Como $ CLASSPATH frequentemente se expandia para um nome de caminho que incluía a palavra java (como /usr/lib/java ), era uma maneira de evocar o nome Java sem realmente dizê-lo. Fisher e outros desenvolvedores não gostaram do uso desagradável de $ e todas as letras maiúsculas e optaram pelo Classpath .

Equipe de desenvolvimento

O mantenedor cuida do lado legal do projeto, prepara as versões regulares do projeto e faz algum gerenciamento de qualidade. O mantenedor também concede permissões de acesso ao CVS .

GNU Classpath não tem hierarquia formal. O trabalho é feito pelos mais capacitados tecnicamente, não havendo também uma divisão de trabalho rígida. Todas as alterações de código são publicadas primeiro na lista de discussão como patches, onde podem ser contestadas, se necessário. O projeto normalmente recebe entre cinco e oito patches por dia.

O progresso da cobertura do código da biblioteca GNU Classpath pode ser rastreado em OpenJDK6 e OpenJDK7.

Integração de máquina virtual

GNU Classpath contém classes do namespace oficial da API Java. Onde as chamadas para o código nativo são necessárias ou altamente desejadas, isso é feito a partir de um pequeno número de classes "VM". O nome dessa classe VM corresponde ao nome da classe que requer métodos nativos, mais o prefixo VM adicional : VMObject, VMString e assim por diante. As classes VM, armazenadas separadamente do resto do código, são privadas e finais do pacote . Os métodos dessas classes contêm a palavra-chave nativo , indicando a necessidade da biblioteca nativa de suporte. Essas bibliotecas são fornecidas pelos autores de uma máquina virtual Java, portanto, GNU Classpath pode ser conectado a quase qualquer máquina virtual Java se as fontes de tal máquina virtual estiverem disponíveis e puderem ser modificadas.

Suporte para os novos recursos de linguagem em Java 1.5

Antes da versão 0.95, cada lançamento do GNU Classpath consistia em dois tarballs de lançamento separados; um que representava o estado do branch principal de desenvolvimento e outro que continha o conteúdo de um branch mais experimental, suportando as adições, como genéricos, enumerações e anotações, presentes no Java 1.5.

Desde a versão 0.95, as adições do Java 1.5, como genéricos, foram totalmente integradas ao branch principal. A ramificação pode ser construída usando o compilador Eclipse , ecj, para compilar o código-fonte Java 1.5 para bytecode. No caso do GCJ, ele usa ecj para realizar esse estágio inicial e, a seguir, converte o bytecode em código nativo. A partir de 0.95, GNU Classpath também suporta a compilação e execução do compilador javac de código aberto recém - criado pela GPL usando GNU Classpath e também permite que a biblioteca de classes GNU Classpath, ferramentas e exemplos sejam compilados com o próprio javac .

Aulas do domínio omg.org

Sun e GNU Corba interagem em um jogo de dois clientes

GNU Classpath não aceita nenhum código que tenha uma licença não-livre ou que tenha sido gerado automaticamente a partir de um código com uma licença não-livre. A API Java padrão contém várias classes do domínio omg.org que normalmente são geradas a partir dos arquivos IDL , liberados pelo Object Management Group . A licença de "usar, mas não modificar" desses arquivos conta como não gratuita. Por esta razão, as classes mencionadas no projeto GNU Classpath foram escritas do zero, usando apenas as especificações OMG impressas oficiais. Portanto, esta parte do GNU Classpath é tão gratuita quanto qualquer outro código do projeto.

Veja também

Notas

Referências

links externos