Biblioteca de classes Java - Java Class Library

A Java Class Library ( JCL ) é um conjunto de bibliotecas carregáveis ​​dinamicamente que as linguagens Java Virtual Machine (JVM) podem chamar em tempo de execução . Como a plataforma Java não depende de um sistema operacional específico , os aplicativos não podem contar com nenhuma das bibliotecas nativas da plataforma. Em vez disso, a plataforma Java fornece um conjunto abrangente de bibliotecas de classes padrão , contendo as funções comuns aos sistemas operacionais modernos.

JCL atende a três propósitos dentro da JVM:

  • Como outras bibliotecas de código padrão , eles fornecem ao programador um conjunto bem conhecido de recursos úteis, como classes de contêiner e processamento de expressão regular .
  • A biblioteca fornece uma interface abstrata para tarefas que normalmente dependem muito do hardware e do sistema operacional, como acesso à rede e acesso a arquivos .
  • Algumas plataformas subjacentes podem não suportar todos os recursos que um aplicativo Java espera. Nesses casos, a implementação da biblioteca pode emular esses recursos ou fornecer uma maneira consistente de verificar a presença de um recurso específico.

Implementação e configuração

A Java Class Library ( JCL ) é quase totalmente escrita em Java, exceto para as partes que precisam de acesso direto ao hardware e sistema operacional (como para E / S ou gráficos de bitmap ). As classes que fornecem acesso a essas funções geralmente usam wrappers Java Native Interface para acessar APIs do sistema operacional .

Quase todo o JCL é armazenado em um único arquivo Java chamado "rt.jar", que é fornecido com as distribuições JRE e JDK . A Java Class Library (rt.jar) está localizada no classpath de bootstrap padrão e não precisa aparecer no classpath declarado para o aplicativo. O tempo de execução usa o carregador de classe de bootstrap para localizar o JCL.

O Java Module System (parte da versão Java 9 ) quebrou o arquivo JAR "rt.jar" monolítico e modularizou o próprio JCL em vários módulos com dependências especificadas.

Conformidade

Qualquer implementação Java deve passar nos testes do Java Technology Compatibility Kit para conformidade, o que inclui testes JCL.

Principais características

Os recursos JCL são acessados ​​por meio de classes fornecidas em pacotes .

Licenciamento

Licenças anteriores

Antes do lançamento do OpenJDK, o JDK era baseado em uma licença proprietária .

Seguindo sua promessa de lançar um JDK totalmente compilável baseado em código quase totalmente gratuito e aberto no primeiro semestre de 2007, a Sun lançou o código-fonte completo da Class Library sob a GPL em 8 de maio de 2007, exceto algumas partes limitadas que foram licenciados pela Sun de terceiros que não queriam que seu código fosse lançado sob uma licença de código aberto. O objetivo da Sun era substituir as peças que permanecem proprietárias e de código fechado por implementações alternativas e tornar a Class Library totalmente gratuita e de código aberto.

Até dezembro de 2010, a parte onerada restante do JDK foi disponibilizada pela Sun e pela Oracle como plugues binários que eram necessários para construir o JDK, mas não necessários para executá-lo. em maio de 2007, a única parte da biblioteca de classes que permaneceu proprietária e de código fechado (4% em maio de 2007 para OpenJDK 7 e menos de 1% em maio de 2008 e OpenJDK 6) foi:

  • A implementação SNMP .

Desde o primeiro lançamento de maio de 2007, a Sun, com a ajuda da comunidade, lançou como código-fonte aberto ou substituiu por alternativas de código-fonte aberto quase todo o código sobrecarregado:

  • Todo o código do motor de áudio, incluindo o sintetizador de software , tornou-se open source. O sintetizador de software de código fechado foi substituído por um novo sintetizador desenvolvido especificamente para OpenJDK chamado Gervill ,
  • Todas as classes de criptografia foram lançadas como código aberto,
  • O código que dimensiona e rasteriza fontes usa FreeType de código aberto
  • O gerenciamento de cores nativas usa LittleCMS de código aberto . Há uma camada conectável no JDK, de modo que a versão comercial do Java pode usar o sistema de gerenciamento de cores proprietário original e o OpenJDK pode usar o LittleCMS.
  • O código rasterizador de gráficos de anti-aliasing usa o renderizador Pisces de código aberto usado no projeto phoneME .
  • O plugin JavaScript é open source (o próprio motor JavaScript era open source desde o início).

Lançamento de código aberto

A partir de dezembro de 2010, todos os chamados plugs binários foram substituídos por substitutos de código aberto , tornando todo o JDK aberto.

Implementações alternativas

GNU Classpath é a outra principal biblioteca de classes de software livre para Java. Ao contrário de outras implementações, ele apenas implementa a Biblioteca de Classes e é usado por muitos tempos de execução Java gratuitos (como Kaffe , SableVM , JamVM ).

Apache Harmony era outra biblioteca de classes de software livre. Seu objetivo era implementar as outras partes da pilha Java ( Máquina Virtual , Compilador e outras ferramentas necessárias para qualquer implementação Java ).

Veja também

Referências

links externos