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?

Joe Schneider
fonte
12
Existe um belo diagrama conceitual Java (com links clicáveis) que também pode ajudar.
informatik01

Respostas:

55

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.

Paul Tomblin
fonte
7
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).

Jonathan Leffler
fonte
1
Então, se eu precisar do JDK 1.6, o que eu instalo? A instalação do Java SE 6 fornece uma JVM que relata como versão 11.0!
Joe Schneider
1
Você precisa se bronzear e fazer o download do JDK 1.6 ou 6, independentemente do que eles listarem.
Chris Marasti-Georg
Acredito que o que vem com o Java SE 6 deve ser o JDK correto, apesar das diferenças internas no número da versão.
Jonathan Leffler
java.sun.com/javase/downloads/index.jsp 2ª opção, Java SE Development Kit (JDK) 6 Atualização 10
Chris Marasti-Georg
1
@ 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):

  1. Visite "Java SE Downloads": http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. Clique em "Download do JDK" e visite "Downloads do Java SE Development Kit 7": http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html (observe que seguir o link da etapa 1 o levará a um link diferente, pois as atualizações do JDK 1.7, versões posteriores, já estão disponíveis)
  3. Aceite o acordo :)
  4. Clique em "Java SE Development Kit 7 (Windows x64)": http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-windows-x64.exe (para o meu Windows 7 de 64 bits sistema)
  5. 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.

Xonatron
fonte
8
Esta resposta precisa ser colidido até :)
fchen
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.

Referências

Epílogo

Basta soltar o "1". a partir de versões impressas por javac -versione java -versione você está pronto para ir.

Manav
fonte
3
Vaca sagrada. Eu pensei que apenas a Microsoft tinha os sem-teto loucos inventando nomes de produtos.
Stabledog
2
É loucura. Eu nunca fui capaz de compreendê-las sem ter que procurá-las explicitamente todas as vezes.
Preet Sangha
4

Com o lançamento do Java 5, a versão do produto foi diferenciada da versão do desenvolvedor, conforme descrito aqui

kit de ferramentas
fonte
3

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

mario
fonte