|
Quem está começando acaba se confundindo com as diferentes
versões da tecnologia Java disponívies, e mesmo quem já
tem algum tempo de estrada as vezes se confunde. Portanto, aqui você
vai sanar um pouco dessas perguntas...
A questão do Números
Em geral as versões dos diversos produtos Java seguem o padrão:
versão 1.2.3a-000,
onde:
-
1 - indica a versão base. Até
hoje nunca ocorreu mudança na versão base (estamos ainda
no Java 1.x), e não é totalmente claro o que significaria
uma mudança nessa versão base. Presumivelmente, isso indicaria
uma mudança radical, provavelmente a nível de definição
da própria máquina virtual.
-
2 - indica mudanças de biblioteca.
Você tem mais objetos e/ou métodos diponíveis, pode
ocorrer de existirem métodos "deprecated" (métodos não
mais recomendados). Uma aplicação desenvolvida com as funcionalidades
de uma versão mais recente não é garantida de rodar
em uma versão anterior (mas o inverso sim).
-
3 - indica bug-fixes, ou seja, não
ocorre mudança de bibliotecas. A partir do Java 2 a itenção
é ter uma versão de bug-fixes a cada trimestre. Uma aplicação
que indica uma versão de bug-fixes específica em geral não
vai funcionar em versões anteriores, mas não terá
nenhum problema para rodar em versões mais novas.
-
a - em alguns poucos casos surgiram
versões com uma letra no final. Isso indica uma versão que
foi lançada para corrigir um bug de segurança (versões
que corrigem bug de segurança são lançadas imediatamente
após o bug ter sido encontrado e corrigido, mesmo que a versão
anterior tenha sida lançada apenas alguns dias antes), e a única
melhoria é a correção desse bug de segurança,
e eventualmente algum outro bug que tenha ido "de lambuja". Essas versões,
ao contrário das versões bug-fixes, não são
planejadas e não constam do cronograma oficial.
-
000 - a partir da versão do
Java 2 (ver abaixo), a letrinha no final foi substituida por tres números,
mas no fundo, significam a mesma coisa que o "a"
acima.
Algumas vezes a versão é indicada através de algo
como: 1.2.x.
O "x" nesse caso indica "tanto faz",
ou seja, que o importante é a versão base (nesse caso, 1.2)
e que tanto faz qual a versão de bug fixes que estamos falando.
No geral, quando você precisar de uma versão de algum produto
Java, você vai conseguir baixar no site java.sun.com
a última versão de bug-fixes. Lembre-se sempre que para uma
aplicação Java qualquer, o que é importante é
a versão base (por exemplo, 1.2),
e a não ser em casos muito específicos, você não
terá nenhum problema em rodar uma aplicação que exige
uma versão de bug-fixes anterior em uma versão mais nova.
As versões do Java Development Kit
O Java Development Kit (JDK) é o conjunto básico de ferramenta
para o desenvolvedor Java. Fazem parte do JDK ferramentas importantes como
o javac (compilador), java (a máquina virtual),
javadoc
(gerador automático de documentação),
jdb
(Java debugger), javap (decompilador) e diversas outras ferramentas
importantes.
Em geral, toda a funcionalidade do JDK já faz parte das ferramentas
de desenvolvimento disponíveis no mercado (ferramentas como NetBeans,
JBuilder, Visual Age for Java, etc), mas o conhecimento do JDK e
de suas ferramentas é importante para qualquer desenvolvedor Java.
As ferramentas deverão indicar que versão do JDK elas suportam,
portanto, fique atento para isso.
Desde o lançamento do primeiro JDK, em 1995, várias versões
já surgiram. Aqui, eu listo as principais, e algumas das que precisam
ser levadas em consideração:
-
JDK 1.0.2 - essa foi a versão mais difundida, e a última,
entre as versões 1.0, e é a versão que está
embutida nos browsers mais antigos. Hoje em dia só é usada
quando se procura compatibilidade com esses browsers antigos.
-
JDK 1.1 - essa versão incorporou uma grande quantidade de
funcionalidades, entre elas algumas das mais importantes são: Java
RMI, JavaBeans, novo modelo de eventos, JDBC. Algumas dessas funcionalidades
já estavam disponíveis antes como adendos ao JDK 1.0 (JDBC,
Java RMI), enquanto outras causaram uma mudança mais profunda (modelo
de eventos).
-
JDK 1.1.6 - essa é uma versão importante porque incorporou
ao JDK uma série de melhorias de performance (com a inclusão
de um JIT), e estabilidade. A maioria dos pacotes comerciais que são
baseados em Java 1.1 exigem pelo menos a versão 1.1.6 ou acima.
-
JDK 1.1.8b - essa é a versão mais recente do JDK 1.1,
e a menos do surgimento de algum bug de segurança, essa deve ser
a última versão do JDK 1.1.
-
JDK 1.2 - essa era pra ser a próxima versão do JDK,
que vinha sendo anunciada a algum tempo. Várias melhorias e a incorporação
de uma grande quantidade de funcionalidades. Quando foi finalmente lançada,
foi renomeada para Java 2 Standard Editon Software Development Kit v1.2
-
Java 2 - nesse momento foi considerado que a plataforma Java tinha
atingido uma maturidade e uma evolução suficiente para ser
realizada uma troca
de nome. O que aconteceu na verdade é que foi dado um nome para
as versões da Tecnologia Java. Antes, as versões da
tecnologia eram confundidas com as versões de um produto (o JDK),
já que não havia outra forma de identificá-las.
Portanto não só foi anunciado que aquele que seria o JDK
1.2 seria renomeado para SDK 1.2, mas tembém foi anunciada a divisão
da plataforma em 3 plataformas básicas, de forma a permitir a inclusão
de tecnologias pertinentes:
-
Java 2 Micro Edition (J2ME) - a plataforma Java voltada para pequenos
devices (telefones celulares, agendas eletrônicas, televisores, aparelhos
eletrônicos em geral)
-
Java 2 Standard Edition (J2SE) - a plataforma voltada para aplicações
cliente (equivalente ao antigo JDK). Essa é a plataforma que será
encontrada nos browsers web e instalada nos sistemas operacionais que já
incluírem a plataforma Java
-
Java 2 Enterprise Edition (J2EE) - essa é a plataforma Java
para desenvolvimento e execussão de aplicações servidoras.
Possui todo o suporte para desenvolver aplicações robustas
e escaláveis, para suportar grandes números de usuários.
Os servidores de aplicação implementam essa plataforma
-
Java 2 Standard Editon Software Development Kit v1.2 (J2SE SDK 1.2)
- esse é o antigo JDK, que foi renomeado como SDK no Java 2. Inclui
várias melhorias em relacao à versão 1.1, uma das
principais é a inclusão das funcionalidades da JFC (Java
Fundation Classes, a biblioteca que contém os componentes do Swing),
além de inclusão do suporte a CORBA, melhorias no Java RMI,
testes de compatibilidade muito superiores, estabilidade, performance,
e muitas outras coisas. Esse é o ambiente básico para o desenvolvimento
de aplicações Java atualmente.
-
Java 2 Standard Edition SDK v1.3 - essa é a versão
que está quase pra sair (nesse momento - fevereiro/2000 - está
disponível o Release Candidate 1), e deve estar disponível
já nos próximos meses. Entre as grandes estrelas desse lançamento
esta a incorporação do HotSpot Performance Engine, além
da incorporação da nova versão da JFC. Observe que
continuamos nos referindo a essa versão como Java 2 (só que
v1.3).
O Java Runtime Environment
Enquanto o JDK é o ambiente voltado para os desenvolvedores, o Java
Runtime Environment (JRE) é basicamente composto da Máquina
Virtual Java (JVM) e o conjunto de bibliotecas, ou seja, tudo o que você
precisa para executar aplicações Java.
Entre os atrativos do JRE esta o Java Plugin. Desde a versão
1.2 (Java 2) que o JRE já traz embutido o Java Plugin, a JVM que
substitui a JVM dos browsers web e permite com que mesmo versões
mais antigas de browsers suportem aplicações Java 2. Ao instalar
o JRE, você ja estara instalando o Java Plugin, automaticamente.
Como a JVM é necessária para executar aplicações
Java, o JRE pode ser distribuido a vontade, podendo inclusive ser embutido
na sua aplicação Java (o JDK e o SDK não podem ser
distribuidos junto da sua aplicação).
As versões do JRE seguem exatamente as mesmas versões
do JDK, e portanto ao desenvolver uma aplicação com uma versão
do JDK você deverá utilizar preferencialmente a mesma versão
do JRE para executá-la.
JDKs e JREs de outros fornecedores
Tudo o que foi dito acima vale para os produtos fornecidos pela Sun Microsystems.
Ou seja, aqueles que você baixar do site java.sun.com,
e que são fornecidos para as plataformas Solaris, Windows (95/98/NT/2000)
e mais recentemente, para Linux. Se você precisa de uma JVM ou do
JDK ou do JRE para outras plataformas, você vai ter que recorrer
aos fornecedores de cada sistema que você esteja utilizando. Só
que nesse caso, as nomenclaturas e versões citadas acima só
valem como referência.
Cada fornecedor tem o seu próprio esquema de versões,
que pode variar, e muito, do esquema de versões da Sun. Vários
deles seguem mais ou menos o mesmo padrão, e alguns inclusive chamam
com os mesmos nomes e versões, mas não todos. Em geral, o
nome do produto não será nem JDK nem JRE, mas algo diferente,
além do número da versão também ser diferente.
Mas todos os produtos vão identificar a que versão do JDK
(ou do JRE) são compatíveis, ou vão dizer algo do
tipo: implemetam Java vX.Y.Z.
Outra diferença é que nem todos os fornecedores vão
fornecer o JDK e o JRE e o Java Plugin com os mesmos empacotamentos e funcionalidades
da Sun. Isso é parte da competição. Todos vão
implementar a mesma especificação da Tecnologia Java e da
JVM, e portanto vão garantir a compatibilidade, mas os detalhes
de implementação vão variar de produto para produto,
conforme o fornecedor ache que está agregando algum valor.
Só como exemplo, a Apple fornece o MacOS
Runtime for Java - MRJ 2.2, que é uma implementação
do JDK 1.1.8 e o equivalente ao JRE da Apple (ou seja, um que possa ser
redistribuido) é chamado de MRJ 2.1.4. Como eu disse, cada caso
é um caso.
Para você encontrar a JVM para o seu sistema, dê uma olhada
na página sobre
os portes da JVM, mantida pela Sun Microsystems.
Conclusão
Java é uma tecnologia que vem evoluindo com muita velocidade, e
nem sempre é fácil acompanhar as mudanças. Isso muitas
vezes acaba se refletindo em uma grande quantidade de produtos e uma maior
ainda variedade de versões. Esse artigo procurou identificar as
principais versões da tecnologia Java, como forma de ajudar a esclarecer
ao menos a questão das versões.
|