Respostas:
A Java Virtual Machine (JVM) é a máquina virtual que executa os bytecodes Java. A JVM não entende o código-fonte Java; é por isso que você precisa compilar seus *.java
arquivos para obter *.class
arquivos que contenham os bytecodes compreendidos pela JVM. É também a entidade que permite que o Java seja uma "linguagem portátil" ( escreva uma vez, execute em qualquer lugar ). De fato, existem implementações específicas da JVM para diferentes sistemas (Windows, Linux, macOS, consulte a lista da Wikipedia ), o objetivo é que, com os mesmos bytecodes, todos eles tenham os mesmos resultados.
Para explicar a diferença entre JDK e JRE, o melhor é ler a documentação do Oracle e consultar o diagrama:
Java Runtime Environment (JRE)
O Java Runtime Environment (JRE) fornece as bibliotecas, a Java Virtual Machine e outros componentes para executar applets e aplicativos escritos na linguagem de programação Java. Além disso, duas principais tecnologias de implantação fazem parte do JRE: Java Plug-in, que permite que os applets sejam executados em navegadores populares; e Java Web Start, que implementa aplicativos independentes em uma rede. É também a base para as tecnologias na Java 2 Platform, Enterprise Edition (J2EE) para desenvolvimento e implantação de software corporativo. O JRE não contém ferramentas e utilitários, como compiladores ou depuradores, para o desenvolvimento de applets e aplicativos.
Kit de Desenvolvimento Java (JDK)
O JDK é um superconjunto do JRE e contém tudo o que está no JRE, além de ferramentas como os compiladores e depuradores necessários para o desenvolvimento de applets e aplicativos.
Observe que o Oracle não é o único a fornecer JDKs.
OpenJDK é uma implementação de código aberto do JDK e a base do Oracle JDK. Quase não há diferença entre o Oracle JDK e o OpenJDK.
As diferenças são declaradas neste blog :
P: Qual é a diferença entre o código fonte encontrado no repositório OpenJDK e o código que você usa para construir o Oracle JDK?
R: Está muito próximo - nosso processo de compilação para versões do Oracle JDK se baseia no OpenJDK 7 adicionando apenas algumas partes, como o código de implantação, que inclui a implementação da Oracle do Java Plugin e Java WebStart, além de alguns terceiros de código fechado componentes de terceiros, como um rasterizador gráfico, alguns componentes de código aberto de terceiros, como o Rhino, e alguns bits aqui e ali, como documentação adicional ou fontes de terceiros. No futuro, nossa intenção é abrir o código fonte de todas as partes do Oracle JDK, exceto aquelas que consideramos recursos comerciais, como o JRockit Mission Control (ainda não disponível no Oracle JDK), e substituir componentes de terceiros sobrecarregados por alternativas de código aberto para obter uma paridade mais próxima entre as bases de código.
Atualização para o JDK 11 - Um artigo de Donald Smith tenta desambiguar a diferença entre o Oracle JDK e o OpenJDK da Oracle: https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11- e depois
A JVM é a Java Virtual Machine - na verdade, executa o Java ByteCode.
O JRE é o Java Runtime Environment - contém uma JVM, entre outras coisas, e é o que você precisa para executar um programa Java.
O JDK é o Java Development Kit - é o JRE, mas com o javac (que é o que você precisa para compilar o código-fonte Java) e outras ferramentas de programação adicionadas.
O OpenJDK é uma implementação específica do JDK.
other things
contido em uma JVM. O que eles são ? Será que este artigo responder plenamente a essa pergunta - javabeat.net/what-is-the-difference-between-jrejvm-and-jdk
JDK (Kit de Desenvolvimento Java)
O Java Developer Kit contém as ferramentas necessárias para desenvolver os programas Java e o JRE para executar os programas. As ferramentas incluem compilador (javac.exe), iniciador de aplicativos Java (java.exe), Appletviewer, etc.
Compilador converte código java em código de bytes. O iniciador de aplicativos Java abre um JRE, carrega a classe e chama seu método principal.
Você precisa do JDK, se quiser escrever seus próprios programas e compilá-los. Para executar programas java, o JRE é suficiente.
JRE é direcionado para execução de arquivos Java
ie JRE = JVM + classes de pacotes Java (como util, math, lang, awt, swing etc) + bibliotecas de tempo de execução
O JDK é direcionado principalmente para o desenvolvimento java. Ou seja, você pode criar um arquivo Java (com a ajuda de pacotes Java), compilar um arquivo Java e executar um arquivo java.
JRE (Java Runtime Environment)
O Java Runtime Environment contém JVM, bibliotecas de classes e outros arquivos de suporte. Ele não contém nenhuma ferramenta de desenvolvimento, como compilador, depurador, etc. Na verdade, a JVM executa o programa e usa as bibliotecas de classes e outros arquivos de suporte fornecidos no JRE. Se você deseja executar qualquer programa java, é necessário ter o JRE instalado no sistema
A Java Virtual Machine fornece uma maneira independente de plataforma de executar código; Isso significa compilar uma vez em qualquer máquina e executá-la em qualquer lugar (qualquer máquina).
JVM (Java Virtual Machine)
Como todos sabemos quando compilamos um arquivo Java, a saída não é um 'exe', mas um arquivo '.class'. O arquivo '.class' consiste em códigos de bytes Java que são compreensíveis pela JVM. A Java Virtual Machine interpreta o código de bytes no código da máquina, dependendo do sistema operacional subjacente e da combinação de hardware. Ele é responsável por tudo, como coleta de lixo, verificação de limites de matriz, etc. A JVM depende da plataforma.
A JVM é chamada de "virtual" porque fornece uma interface de máquina que não depende do sistema operacional subjacente e da arquitetura de hardware da máquina. Essa independência do hardware e do sistema operacional é uma pedra angular do valor de gravação única, execução em qualquer lugar dos programas Java.
Existem diferentes implementações da JVM. Elas podem diferir em aspectos como desempenho, confiabilidade, velocidade etc. Essas implementações diferem nas áreas em que a especificação Java não menciona como implementar os recursos, como o processo de coleta de lixo funciona depende da JVM, a especificação Java não defina qualquer maneira específica de fazer isso.
Uma Java virtual machine (JVM) é uma máquina virtual que pode executar o Java ByteCode. É o componente de execução de código da plataforma de software Java.
O Java Development Kit (JDK) é um produto da Oracle Corporation voltado para desenvolvedores de Java. Desde a introdução do Java, ele tem sido de longe o Java Software Development Kit (SDK) mais amplamente usado.
Java Runtime Environment , também conhecido como Java Runtime, Runtime Environment
O OpenJDK (Kit de Desenvolvimento Java Aberto) é uma implementação gratuita e de código aberto da linguagem de programação Java. É o resultado de um esforço que a Sun Microsystems iniciou em 2006. A implementação está licenciada sob a GNU General Public License (GPL) com uma exceção de vinculação.
JVM é o código Java da máquina virtual executado em
JRE é o ambiente (bibliotecas padrão e JVM) necessário para executar aplicativos Java
JDK é o JRE com ferramentas e documentações para desenvolvedores
O OpenJDK é uma versão de código aberto do JDK, diferente do JDK comum de propriedade da Oracle
JDK (Java Development Kit):
JRE (Java Runtime Environment)
O Java Runtime Environment contém JVM, bibliotecas de classes e outros arquivos de suporte. O JRE é direcionado para a execução de arquivos Java.
JVM (Java Virtual Machine)
A JVM interpreta o código de bytes no código da máquina, dependendo do sistema operacional subjacente e da combinação de hardware. Ele é responsável por tudo, como coleta de lixo, verificação de limites de matriz, etc. O Java Virtual Machine fornece uma maneira independente de plataforma de executar código.
JDK - Compila java para ByteCode. Consiste em depuradores, compiladores etc.
javac file.java // Is executed using JDK
JVM - Executa o código de bytes. A JVM é aquela que torna a plataforma java independente. Mas a JVM varia de acordo com as plataformas.
JRE - JVM junto com as bibliotecas de tempo de execução java para executar programas java.
Outro aspecto que vale a pena mencionar:
JDK (kit de desenvolvimento java)
Você precisará dele para fins de desenvolvimento, como o nome sugere.
Por exemplo: uma empresa de software terá o JDK instalado em seu computador porque precisará desenvolver um novo software que envolva a compilação e a execução de seus programas Java também.
Então, podemos dizer que JDK = JRE + JVM.
JRE (ambiente de tempo de execução java)
É necessário para executar programas Java. Você não pode compilar programas Java com ele.
Por exemplo: um usuário comum de computador que deseja executar alguns jogos online precisará do JRE em seu sistema para executar programas Java.
JVM (máquina virtual java)
Como você deve saber, execute os bytecodes. Torna a plataforma Java independente porque executa o .class
arquivo que você obtém após a compilação do programa Java, independentemente de ser compilado no Windows, Mac ou Linux.
Abrir JDK
Bem, como eu disse acima. Agora, o JDK é fabricado por outra empresa, uma delas que é de código aberto e gratuita para uso público é o OpenJDK, enquanto outras são o JRockit JDK ou IBM JDK da Oracle Corporation.
No entanto, todos eles podem parecer iguais para o usuário geral.
Conclusão
Se você é um programador Java, precisará do JDK em seu sistema e este pacote também incluirá JRE e JVM, mas se você for um usuário normal que gosta de jogar jogos online, precisará apenas do JRE e este pacote não terá o JDK. .
Em outras palavras, JDK é avô, JRE é pai e JVM é filho deles.
Java é a linguagem e inclui uma sintaxe estrita e fortemente tipada com a qual você deve estar familiarizado agora.
A plataforma Java 2, Standard Edition, também conhecida como J2SE, se referiu à plataforma e incluiu as classes nos pacotes java.lang e java.io, entre outras. Foi o bloco de construção em que os aplicativos Java foram criados.
Uma Java Virtual Machine, ou JVM, é uma máquina virtual de software que executa o código Java compilado. Como o código Java compilado é apenas um código de bytes, a JVM é responsável por compilar esse código de código de código de máquina antes de executá-lo. (Isso geralmente é chamado de Just In Time Compiler ou JIT Compiler.) A JVM também cuida do gerenciamento de memória para que o código do aplicativo não precise.
O Java Development Kit, ou JDK, foi e continua sendo o software que os desenvolvedores de Java usam para criar aplicativos Java. Ele contém um compilador de linguagem Java, um gerador de documentação, ferramentas para trabalhar com código nativo e (normalmente) o código-fonte Java da plataforma para ativar as classes da plataforma de depuração.
O Java Runtime Environment, ou JRE, foi e continua sendo o software baixado pelos usuários finais para executar aplicativos Java compilados. Inclui uma JVM, mas não contém nenhuma das ferramentas de desenvolvimento empacotadas no JDK. O JDK, no entanto, contém um JRE.
JVM: Uma especificação que descreve a maneira / recursos para executar um programa java. Realmente executa o código de bytes e torna a plataforma java independente. Ao fazer isso, é diferente para diferentes plataformas. A JVM para Windows não pode funcionar como JVM para UNIX.
JRE: Implementação da JVM. (JVM + bibliotecas de tempo de execução)
JDK: JRE + compilador java e outras ferramentas essenciais para criar um programa java a partir do zero
JVM : isso realmente significa o interpretador de código de bytes. Depende da plataforma. Por exemplo: na plataforma Windows, a precessão ' java.exe ' ou ' javaw.exe ' é o processo jvm.
JDK : é um kit de ferramentas que contém bibliotecas e utilitários necessários para desenvolver e executar programa / aplicativo java
JRE : é o ambiente de execução para um java application.ie, suporta apenas dependências de tempo de execução, incluindo jvm para programa compilado. Se queremos compilar um programa java, precisamos do jdk.
JVM: máquina virtual de java. informa à máquina o que fazer com o código Java. Você não pode fazer o download da JVM como está. Ele vem embalado em algum outro componente.
JRE: Outro componente referido acima é o JRE. É JVM + outros jars para criar um ambiente de tempo de execução
JDK: contém o JRE (que por sua vez contém a JVM). Depois de obter o JDK, você não precisa instalar o JRE e a JVM separadamente. Ele contém um compilador que compila seus arquivos .java em arquivos .class
JVM
JVM (Java Virtual Machine) é uma máquina abstrata. É uma especificação que fornece um ambiente de tempo de execução no qual o bytecode java pode ser executado. JVMs estão disponíveis para muitas plataformas de hardware e software.
JRE
JRE é um acrônimo para Java Runtime Environment.É usado para fornecer ambiente de tempo de execução.É a implementação da JVM.Existe fisicamente.Ele contém um conjunto de bibliotecas e outros arquivos que a JVM usa em tempo de execução.
JDK
JDK é um acrônimo para Java Development Kit, que existe fisicamente e contém ferramentas de desenvolvimento JRE +.
Link: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm
Em suma:
Se você deseja desenvolver em java, precisa do JDK, mas se deseja apenas executar o java, precisa do JRE.
A JVM Java Virtual Machine, na verdade, executa o bytecode java. É o bloco de execução na plataforma JAVA. Ele converte o bytecode no código da máquina.
JRE Java Runtime Environment, fornece os requisitos mínimos para executar um aplicativo Java; consiste na Java Virtual Machine (JVM), classes principais e arquivos de suporte.
JDK Java Development Kit, possui todas as ferramentas para desenvolver seu software aplicativo. É como JRE + JVM
O Open JDK é uma implementação gratuita e de código aberto da plataforma Java.
Em termos leigos: - JDK = JRE + Ferramentas de desenvolvimento / depuração , onde o JDK é o nosso pacote completo para trabalhar com Java, desde a criação da compilação até a execução.
Nota: - Quer estejamos instalando o JDK ou o JRE, a JVM virá com os pacotes e a JVM é a parte em que o compilador JIT converte o código de bytes no código específico da máquina.
Basta ler o artigo sobre JDK, JRE, JVM e JIT
JDK : O pacote completo que você precisa para escrever e executar o código java
OpenJDK : Uma implementação independente do JDK para torná-lo muito melhor
JVM : Converte o código Java em bytecode e fornece as especificações que informam como um código Java deve ser compilado, carregado, verificado, verificado quanto a erros e executado.
JRE : Implementação da JVM com a qual algumas bibliotecas Java são usadas para executar o programa
O JRE executa o aplicativo, mas a JVM lê as instruções linha por linha, por isso é intérprete.
JDK = JRE + Ferramentas de desenvolvimento
JRE = JVM + Classes de Biblioteca
JVM é abreviada como Java Virtual Machine , JVM é o principal componente da arquitetura java. A JVM é escrita na linguagem de programação C. O compilador Java produz o código de bytes para a JVM. JVM lendo o código de bytes, verificando o código de bytes e vinculando o código à biblioteca.
O JRE é abreviado como Java Runtime Environment . é fornecer ambiente em tempo de execução. É existir fisicamente. Ele contém JVM + conjunto de bibliotecas (jar) + outros arquivos.
JDK é abreviado como Java Development Kit . é desenvolver aplicativos java. E também Depurando e monitorando aplicativos java. O JDK contém ferramentas de desenvolvimento JRE + (javac, java)
OpenJDK OpenJDK é uma versão de código aberto do sun JDK. O Oracle JDK é o JDK oficial da Sun.