Java SE 6 vs. JRE 1.6 vs. JDK 1.6 - O que isso significa?
178
Eu vejo muitos termos Java diferentes flutuando. Eu preciso instalar o JDK 1.6. Entendi que Java 6 == Java 1.6. No entanto, quando instalo o Java SE 6, recebo uma JVM que relata como versão 11.0! Quem pode resolver a loucura?
Ao digitar "java -version", você vê três números de versão - a versão java (na minha, que é " 1.6.0_07"), a versão Java SE Runtime Environment ("build 1.6.0_07-b06") e a versão do HotSpot (na minha, isso é " build 10.0-b23, mixed mode") Eu suspeito que o "11.0" que você está vendo é a versão do HotSpot.
Atualização: o HotSpot é (ou costumava ser, agora eles parecem usá-lo para significar toda a VM) o compilador just-in-time incorporado à Java Virtual Machine. Só Deus sabe por que a Sun fornece um número de versão separado.
Então, qual é a diferença entre a JVM 1.6 e a JVM 11.0? O que é hotspot?
Joe Schneider
Obrigado, essa foi a confusão - dois números de versão diferentes.
Joe Schneider
1
Na verdade, o HotSpot não é um JIT. O JIT implica que a compilação ocorre antes da execução. O HotSpot primeiro usa a interpretação para executar e analisar o código antes de compilar / otimizar partes selecionadas do programa.
John Nilsson
173
JDK - Kit de Desenvolvimento Java
JRE - Java Runtime Environment
Java SE - Java Standard Edition
SE define um conjunto de capacidades e funcionalidades; existem edições mais complexas (Enterprise Edition - EE) e mais simples (Micro Edition - ME - para ambientes móveis).
O JDK inclui o compilador e outras ferramentas necessárias para desenvolver aplicativos Java; JRE não. Portanto, para executar um aplicativo Java fornecido por outra pessoa, você precisa do JRE; para desenvolver um aplicativo Java, você precisa do JDK.
Editado : Como Chris Marasti-Georg apontou em um comentário, você pode encontrar muitas informações no site Java da Sun e, em particular, na seção Java SE (segunda opção, Java SE Development Kit (JDK) 6, atualização 10) .
Editado 06-04-2011:
o mundo gira e o Java agora é gerenciado pela Oracle, que comprou a Sun. Ainda este ano, o sun.comdomínio deve ficar escuro. A nova página (com base em um redirecionamento) é esta página Java na Oracle Tech Network. (Veja também java.com .)
Editado 11-01-2013: E o mundo continua girando (apesar de 21/12/2012) e eis que o JRE 6 está prestes a atingir seu fim de apoio. A Oracle diz que não há mais atualizações públicas do Java 6 após fevereiro de 2013.
Dentro de uma determinada versão do Java, essa resposta permanece válida. JDK é o Java Development Kit, JRE é o Java Runtime Environment, Java SE é a edição padrão e assim por diante. Mas a versão 6 (1.6) está se tornando antiquada.
Editado 29-04-2015: E com mais algumas revoluções ao redor do sol, chegou a hora do fim do suporte ao Java SE 7 também. Em abril de 2015, a Oracle afirmou que não estava mais fornecendo atualizações públicas para o Java SE 7. O final tentativo das atualizações públicas para o Java SE 8 é março de 2017, mas essa data final está sujeita a alterações (mais tarde, não antes).
@ Pacerier: isso era verdade em outubro de 2008? Além disso, o principal componente do JDK é o compilador Java, não é?
Jonathan Leffler
103
Isso pode ajudar alguém:
Estou instalando o Java mais recente no meu sistema para desenvolvimento e atualmente é o Java SE 7. Agora, vamos mergulhar nessa "loucura", como você diz ...
Tudo isso é o mesmo (quando os desenvolvedores estão falando sobre Java para desenvolvimento):
Java SE 7
Java SE v1.7.0
Kit de desenvolvimento Java SE 7
Começando com o Java v1.5:
v5 = v1.5.
v6 = v1.6.
v7 = v1.7.
E podemos assumir que isso permanecerá para versões futuras.
Em seguida, para desenvolvedores, faça o download do JDK, não do JRE.
O JDK conterá o JRE. Se você precisar de JDK e JRE, obtenha o JDK. Ambos serão instalados a partir da instalação única do JDK, como você verá abaixo.
Como alguém acima mencionado:
JDK = Java Development Kit (os desenvolvedores precisam disso, é você se você codificar em Java)
JRE = Java Runtime Environment (os usuários precisam disso, hoje é todo usuário de computador)
Java SE = Java Standard Edition
Aqui estão os links passo a passo que segui (um passo leva ao próximo, tudo isso para um único download) para baixar o Java for development (JDK):
Agora você está baixando (espero que seja o mais recente) o JDK para o seu sistema! :)
Lembre-se de que os links acima são apenas para fins de referência, para mostrar o método passo a passo do que é necessário para fazer o download do JDK.
E instale com as configurações padrão para:
“C: \ Arquivos de Programas \ Java \ jdk1.7.0 \” (JDK)
“C: \ Arquivos de Programas \ Java \ jre7 \” (JRE) <--- por que ele pediu uma nova pasta de instalação? é JRE!
Lembre-se de que o JDK contém o JRE, o que faz sentido se você souber quais são os dois. Mais uma vez, veja acima.
Após a instalação, verifique "C: \ Arquivos de Programas \ Java" para ver as duas pastas. Agora você sabe o que são e por que estão lá.
Sei que escrevi isso para iniciantes, mas gosto de saber as coisas em detalhes, então espero que isso ajude.
Recentemente, tive que instalar um jre para executar um dos outros instaladores e depois instalar uma versão de 32 bits para que um dos outros instaladores funcionasse. A versão que estou usando no final é o glassfish 4, que ainda não parece estar fornecendo javax.persistence. Acabou que eu precisava do maven, que você descompacta e define algumas variáveis de ambiente. Que bagunça!
JonnyRaa
Parece-me que o Java SE e o Java SDK são o mesmo pacote.
galmok
20
Uma Breve e Talvez Incorreta História das Versões Java
Java é uma plataforma. Consiste em dois produtos - o kit de desenvolvimento de software e o ambiente de tempo de execução.
Quando o Java foi lançado pela primeira vez, aparentemente ele era chamado Java . Se você era um desenvolvedor, também conhecia a versão, que era uma "1.0" normal e depois uma "1.1". Os dois produtos que faziam parte da plataforma também receberam nomes:
JDK - "Kit de Desenvolvimento Java"
JRE - "Java Runtime Environment"
Aparentemente, as mudanças na versão 1.2 são tão significativas que começaram a chamar a plataforma como Java 2 .
A "distribuição" padrão da plataforma recebeu o apelido de "padrão" para contrastá-la com seus irmãos. Então você tinha três plataformas:
"Java 2 Standard Edition (J2SE)"
"Java 2 Enterprise Edition (J2EE)"
"Java 2 Mobile Edition (J2ME)"
O JDK foi renomeado oficialmente como "Java 2 Software Development Kit".
Quando a versão 1.5 saiu, os processos decidiram que precisavam "mudar a marca" do produto. Portanto, a plataforma Java possui duas versões - a versão do produto "5" e a versão do desenvolvedor "1.5" (Sim, a regra é explicitamente mencionada - "descarte o '1.'). No entanto, o" 2 "foi retido no Agora, a plataforma é oficialmente chamada "Java 2 Platform Standard Edition 5.0 (J2SE 5.0)" .
Os processos também perceberam que a comunidade de desenvolvimento não estava renomeando o JDK. Mas, em vez de reverter sua alteração, eles decidem simplesmente remover o "2" do nome dos produtos individuais, que agora são "J2SE Development Kit 5.0 (JDK 5.0)" e "J2SE Runtime Environment 5.0 (JRE 5.0)" .
Quando a versão 1.6 saiu, alguém percebeu que ter dois números no nome era estranho. Portanto, eles decidem eliminar completamente o 2 (e o sufixo ".0") e terminamos com a "Java Platform, Standard Edition 6 (Java SE 6)", que contém o "Java SE Development Kit 6 (JDK 6)" e o "Java SE Runtime Environment 6 (JRE 6)" .
A versão 1.7 não fez nada estúpido. Se eu tivesse que adivinhar, a próxima grande mudança seria eliminar o "SE", para que o ciclo seja concluído e o JDK novamente seja chamado de "Java Development Kit".
Notas
Por simplicidade, vários sinais de marcas registradas foram omitidos. Portanto, assuma o Java ™, JDK ™ e JRE ™.
SO parece ter problemas para processar listas aninhadas.
O Java SE Runtime é para o usuário final, portanto, você precisa da versão do Java JRE, a primeira versão do Java era a 1, e então 1.1 - 1.2 - 1.3 - 1.4 - 1.5 - 1.6 etc. jre 1.6, de qualquer forma, há a versão de atualização, por exemplo, 1.6 atualização 45, chamada java jre 6u45.
Pelo que sei, eles preferiram usar o número 6 em vez de usar o 1.6 para refletir melhor o nível de maturidade, estabilidade, escalabilidade, segurança e muito mais
Respostas:
Ao digitar "java -version", você vê três números de versão - a versão java (na minha, que é "
1.6.0_07
"), a versão Java SE Runtime Environment ("build1.6.0_07-b06
") e a versão do HotSpot (na minha, isso é "build 10.0-b23, mixed mode"
) Eu suspeito que o "11.0" que você está vendo é a versão do HotSpot.Atualização: o HotSpot é (ou costumava ser, agora eles parecem usá-lo para significar toda a VM) o compilador just-in-time incorporado à Java Virtual Machine. Só Deus sabe por que a Sun fornece um número de versão separado.
fonte
SE define um conjunto de capacidades e funcionalidades; existem edições mais complexas (Enterprise Edition - EE) e mais simples (Micro Edition - ME - para ambientes móveis).
O JDK inclui o compilador e outras ferramentas necessárias para desenvolver aplicativos Java; JRE não. Portanto, para executar um aplicativo Java fornecido por outra pessoa, você precisa do JRE; para desenvolver um aplicativo Java, você precisa do JDK.
Editado : Como Chris Marasti-Georg apontou em um comentário, você pode encontrar muitas informações no site Java da Sun e, em particular, na seção Java SE (segunda opção, Java SE Development Kit (JDK) 6, atualização 10) .
Editado 06-04-2011: o mundo gira e o Java agora é gerenciado pela Oracle, que comprou a Sun. Ainda este ano, o
sun.com
domínio deve ficar escuro. A nova página (com base em um redirecionamento) é esta página Java na Oracle Tech Network. (Veja também java.com .)Editado 11-01-2013: E o mundo continua girando (apesar de 21/12/2012) e eis que o JRE 6 está prestes a atingir seu fim de apoio. A Oracle diz que não há mais atualizações públicas do Java 6 após fevereiro de 2013.
Dentro de uma determinada versão do Java, essa resposta permanece válida. JDK é o Java Development Kit, JRE é o Java Runtime Environment, Java SE é a edição padrão e assim por diante. Mas a versão 6 (1.6) está se tornando antiquada.
Editado 29-04-2015: E com mais algumas revoluções ao redor do sol, chegou a hora do fim do suporte ao Java SE 7 também. Em abril de 2015, a Oracle afirmou que não estava mais fornecendo atualizações públicas para o Java SE 7. O final tentativo das atualizações públicas para o Java SE 8 é março de 2017, mas essa data final está sujeita a alterações (mais tarde, não antes).
fonte
Isso pode ajudar alguém:
Estou instalando o Java mais recente no meu sistema para desenvolvimento e atualmente é o Java SE 7. Agora, vamos mergulhar nessa "loucura", como você diz ...
Tudo isso é o mesmo (quando os desenvolvedores estão falando sobre Java para desenvolvimento):
Começando com o Java v1.5:
E podemos assumir que isso permanecerá para versões futuras.
Em seguida, para desenvolvedores, faça o download do JDK, não do JRE.
O JDK conterá o JRE. Se você precisar de JDK e JRE, obtenha o JDK. Ambos serão instalados a partir da instalação única do JDK, como você verá abaixo.
Como alguém acima mencionado:
Aqui estão os links passo a passo que segui (um passo leva ao próximo, tudo isso para um único download) para baixar o Java for development (JDK):
Lembre-se de que os links acima são apenas para fins de referência, para mostrar o método passo a passo do que é necessário para fazer o download do JDK.
E instale com as configurações padrão para:
Lembre-se de que o JDK contém o JRE, o que faz sentido se você souber quais são os dois. Mais uma vez, veja acima.
Após a instalação, verifique "C: \ Arquivos de Programas \ Java" para ver as duas pastas. Agora você sabe o que são e por que estão lá.
Sei que escrevi isso para iniciantes, mas gosto de saber as coisas em detalhes, então espero que isso ajude.
fonte
Uma Breve e Talvez Incorreta História das Versões Java
Java é uma plataforma. Consiste em dois produtos - o kit de desenvolvimento de software e o ambiente de tempo de execução.
Quando o Java foi lançado pela primeira vez, aparentemente ele era chamado Java . Se você era um desenvolvedor, também conhecia a versão, que era uma "1.0" normal e depois uma "1.1". Os dois produtos que faziam parte da plataforma também receberam nomes:
Aparentemente, as mudanças na versão 1.2 são tão significativas que começaram a chamar a plataforma como Java 2 .
A "distribuição" padrão da plataforma recebeu o apelido de "padrão" para contrastá-la com seus irmãos. Então você tinha três plataformas:
O JDK foi renomeado oficialmente como "Java 2 Software Development Kit".
Quando a versão 1.5 saiu, os processos decidiram que precisavam "mudar a marca" do produto. Portanto, a plataforma Java possui duas versões - a versão do produto "5" e a versão do desenvolvedor "1.5" (Sim, a regra é explicitamente mencionada - "descarte o '1.'). No entanto, o" 2 "foi retido no Agora, a plataforma é oficialmente chamada "Java 2 Platform Standard Edition 5.0 (J2SE 5.0)" .
Quando a versão 1.6 saiu, alguém percebeu que ter dois números no nome era estranho. Portanto, eles decidem eliminar completamente o 2 (e o sufixo ".0") e terminamos com a "Java Platform, Standard Edition 6 (Java SE 6)", que contém o "Java SE Development Kit 6 (JDK 6)" e o "Java SE Runtime Environment 6 (JRE 6)" .
A versão 1.7 não fez nada estúpido. Se eu tivesse que adivinhar, a próxima grande mudança seria eliminar o "SE", para que o ciclo seja concluído e o JDK novamente seja chamado de "Java Development Kit".
Notas
Por simplicidade, vários sinais de marcas registradas foram omitidos. Portanto, assuma o Java ™, JDK ™ e JRE ™.
SO parece ter problemas para processar listas aninhadas.
Referências
Epílogo
Basta soltar o "1". a partir de versões impressas por
javac -version
ejava -version
e você está pronto para ir.fonte
Com o lançamento do Java 5, a versão do produto foi diferenciada da versão do desenvolvedor, conforme descrito aqui
fonte
O Java SE Runtime é para o usuário final, portanto, você precisa da versão do Java JRE, a primeira versão do Java era a 1, e então 1.1 - 1.2 - 1.3 - 1.4 - 1.5 - 1.6 etc. jre 1.6, de qualquer forma, há a versão de atualização, por exemplo, 1.6 atualização 45, chamada java jre 6u45.
Pelo que sei, eles preferiram usar o número 6 em vez de usar o 1.6 para refletir melhor o nível de maturidade, estabilidade, escalabilidade, segurança e muito mais
fonte