versões java e como não se confundir com elas

versões java e como não se confundir com elas

Estou ciente de que existe o JRE e a JVM. Também programei em Java, portanto não sou um iniciante total. No entanto, ultimamente estou ficando muito confuso e gostaria de receber uma resposta atual à minha pergunta.

Qual versão do JRE e JVM eu tenho e qual é a mais recente?

Agora, antes de querer me dizer "google it", eu já pesquisei no Google. Portanto minha confusão.

Nopágina inicial javadiz:

Na guia Geral do Painel de Controle Java, a versão está disponível na seção Sobre. Uma caixa de diálogo aparece (depois de clicar em Sobre) mostrando a versão do Java.

Bem, eu fiz isso e tenho a versão 8 Update71.

nessa página inicial também diz:

O JRE e o JDK são separados e podem coexistir no seu sistema. Apenas um JRE pode ser instalado no Mac. Pode haver vários JDKs instalados em um sistema, quantos você desejar.

Tudo bem, eu já sei disso. Então eu faço o que eles dizem para obter a versão do terminal e recebo

java -version
java version "1.8.0_71"
Java(TM) SE Runtime Environment (build 1.8.0_71-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.71-b15, mixed mode)

Tudo bem, parece o mesmo. Então agora vem a pergunta:

Qual versão eu tenho? Quero dizer, a versão 8 é a versão JRE? ou é a versão JVM? Na página inicial embora os distingam (como a citação), a instrução para obter a versão éo mesmo!

Para complicar ainda mais, vouWikipédiae lá diz que as versões atualmente suportadas são Java 8 e Java 11. Por que duas? e o que aconteceu com 9 e 10? E novamente, são JRE ou JVM?

Alguém pode me explicar isso?

Responder1

Parece-me que suas perguntas foram respondidas no mesmo artigo da Wikipedia:

Java 8 e Java 11 são os atualmente suportadosSuporte de longo termo(LTS) e Java 10 é a versão de lançamento rápido suportada anteriormente. O suporte ao Java 10 terminou na mesma data em que o suporte ao Java 11 começou, em setembro de 2018. O Java 7 não tem mais suporte público, o Java 9 parou de receber atualizações. já que Java 9 era uma versão de lançamento rápido de curto prazo que foi substituída pelo Java 10, e o "fim das atualizações públicas" para Java 8 está agendado para janeiro de 2019 para uso comercial, e não antes de dezembro de 2020 para uso não comercial. Para Java 11, o suporte de longo prazo não será fornecido pela Oracle; em vez disso, espera-se que a comunidade OpenJDK mais ampla, como AdoptOpenJDK, execute o trabalho.

Portanto, as versões 9 e 10 tiveram vida curta. Acho que foram medidas provisórias que foram adotadas às pressas em resposta a graves falhas de segurança.

A versão 8 é a última versão ainda suportada pela Oracle e dividida em JDK e JRE. A versão 11 parece ter abandonado essa divisão e ter apenas uma versão unificada do JDK baseada no OpenJDK, portanto, pode não ter as melhorias de desempenho encontradas na versão paga do Java da Oracle.

Para descobrir quais versões você possui no Linux, suponho que você possa consultar os pacotes instalados.

No Windows, você pode encontrar essas informações no registro de 32 e 64 bits em:

  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\JavaSoft
  • HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft

Você também pode encontrar essas informações emPainel de controle > Java (32 bits)ou Painel de controle > Java (64 bits):

insira a descrição da imagem aqui

Responder2

Você está confundindo alguns termos e está em um Mac onde a Oracle também confundiu alguns deles.

Acho que existem 4 coisas diferentes.

  1. JVM (Java Virtual Machine) está presente em todas as versões do Java e é o executável que executa os arquivos de classe compilados do Java. Não pode ser baixado diretamente, mas faz parte dos outros 3 itens. java -version mostra a versão que você está usando.

  2. JDK (kit de desenvolvimento Java) Esta é a instalação necessária se você estiver escrevendo programas. Inclui o compilador e outras ferramentas. Para versões macOS com Oracle, este é o único download que fornece um ambiente inicializável por /usr/bin/java

  3. JRE (Java Runtime Environment). Nas versões de Java para Windows, Linux e Apple, isso fornece a seleção mínima de arquivos necessários para executar um programa Java a partir da linha de comando. Ele não parece existir como parte de uma versão do Oracle MacOs. No entanto, este é o Java(TM) SE Runtime Environment mostrado pela versão Java.

  4. JRE (Java Runtime Environment) no macOS. Da Oracle, este é o ambiente que executa miniaplicativos Java em seu navegador. Este é o JRE do qual você só pode ter um no seu Mac. Este também é aquele que é visto e atualizado pelo painel de controle Java nas Preferências do Sistema.

Portanto, no macOS, a partir da linha de comando, você instala o JDK que inclui um JRE e que inclui uma JVM e você pode ter várias versões destes. Há também um JRE separado (diferente da linha de comando) que executa miniaplicativos em seu navegador e está no painel de controle Java e você pode ter apenas um deles.

Quanto aos números de versão, etc. Pelo que entendi, após a versão 8, eles alteraram a numeração das versões. Wikipédia diz

Em setembro de 2017, Mark Reinhold, arquiteto-chefe da plataforma Java, propôs alterar o trem de lançamento para "um lançamento de recurso a cada seis meses" em vez do cronograma atual de dois anos,[1][2] e mais tarde a proposta entrou em vigor .

Assim, 9,10 foram substituídos por 11 e 12 vence em março de 2019 - vejahttps://en.wikipedia.org/wiki/Java_version_historysobre horários e suporte.

Para localizar as JVMs que podem ser usadas na linha de comando, execute/usr/libexec/java_home -V

eu recebo

/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home
Matching Java Virtual Machines (6):
11.0.1, x86_64: "OpenJDK 11.0.1"    /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home
10.0.1, x86_64: "Java SE 10.0.1"    /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
1.8.0_171, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
1.8.0_92, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home
1.8.0_77, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home

Para instalar e escolher qual JDK consultehttps://stackoverflow.com/questions/52524112/how-do-i-install-java-11-on-mac-osx-allowing-version-switching

informação relacionada