sexta-feira, 8 de junho de 2012

JDK,JRE,JVM - Quais suas diferenças?


Vamos quebrar mais esta aqui para a galera! Afinal, qual a diferença?

JDK (Java Development Kit)

Java Developer Kit contém ferramentas necessárias para desenvolver os programas em Java, e JRE para executar os programas. As ferramentas incluem compilador (javac.exe), lançador de aplicação Java (java.exe), appletviewer, etc ...

O Compilador converte o código Java em código de byte. O Java executa o aplicativo, abre um JRE, carrega a classe, e chama seu método principal.



Você precisa do JDK se você quer escrever seus próprios programas, e para compilar o m. Para execução de programas Java, o JRE é suficiente.

JRE é direcionada para a execução de arquivos Java ou seja, do JRE = Java JVM + Classes Pacotes (como util, matemática, lang, awt, etc swing) + de bibliotecas de tempo de execução.
JDK é principalmente direcionada para 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)

Java Runtime Environment contém JVM, bibliotecas de classes e outros arquivos de suporte. Ele não contém todas as ferramentas de desenvolvimento tais como compilador, depurador, etc Na verdade JVM executa o programa, e ele usa as bibliotecas de classe, e outros arquivos de suporte fornecidos no JRE. Se você quiser executar qualquer programa java, você precisa ter o JRE instalado no sistema



Java Virtual Machine fornece uma maneira independente de plataforma de execução de código; programadores podem se concentrar em software de gravação, sem ter que se preocupar com a forma como ou onde ele será executado.
Se vc quiser apenas executar applets (ex: jogos on-line do Yahoo ou puzzles), JRE precisa ser instalado na máquina.

JVM (Java Virtual Machine)

Todos estamos conscientes que, quando compilamos um arquivo Java, a saída não é um 'exe' mas é um arquivo 'classe.'.Arquivo '. Classe "consiste em códigos de byte Java que são compreensíveis pela JVM. Java Virtual Machine. Ela interpreta o código byte no código de máquina, dependendo do sistema operacional subjacente e combinação de hardware. É responsável por todas as coisas como coleta de lixo, limites de matriz de controlo, etc ... JVM é dependente de plataforma.



JVM é chamado de "virtual", pois fornece uma interface de máquina que não dependem do sistema operacional subjacente e arquitetura de hardware da máquina. Esta independência de sistema operacional e hardware é uma pedra angular do valor write-once executados em qualquer local de programas Java.

Existem diferentes implementações da JVM que estão lá. Estas podem diferir em coisas como o desempenho, confiabilidade, velocidade, etc Essas implementações serão diferentes nas áreas em que a especificação Java não mencionar a forma de implementar os recursos, como a forma como o processo de coleta de lixo funciona é dependente JVM, Java especificação não definir qualquer forma específica de fazer isso.


Veja Também:


Abrindo Arquivos com java
Inserindo hora em sua aplicação

Abrindo Arquivos Com Java



Fala galera! Eu a pouco tempo, estava precisando abrir arquivos via java, e encontrei alguma dificuldade com isso. Depois de muito "penar", descobri finalmente como fazer e venho aqui lhes repassar esta dica que um dia também lhes será útil! Vamos lá!


Neste exemplo, vamos executar um aplicativo usando o programa java.
 Este exemplo utiliza a classe Process  que está contida no pacote Lang e estende-se a classe Object . O método Runtime.exec () cria um processo natural e retorna uma instância de uma subclasse da classe Process. Este exemplo é então utilizado para controlar o processo, e, para obter a informação sobre o mesmo. A classe Process fornece métodos para a realização de entrada, saída de espera, verificação do status de saída, e destruir (matar) o processo. O Runtime.exec () pode não funcionar bem para os processos de janelas, processos daemon, processos Win16/DOS sobre Microsoft scripts do Windows, ou shell.


A classe Runtime contida no pacote java.lang e amplia o objeto da classe. Toda aplicação Java tem uma única instância de Runtime. O tempo de execução de corrente pode ser obtida usando a getRuntime (). Qualquer aplicativo não pode criar sua própria instância de classe de tempo de execução. 
O método utilizado: 
exec (String comando): Este método é usado para executar o comando. Aqui comando é um comando do sistema especificado. Também pode ser usada para executar qualquer exe..   


import java.io.IOException; 
public class RuntimeExec{
  public static void main(String[] args){
  try
  {
  Process process = Runtime.getRuntime()
.exec
("notepad.exe");
  }catch (IOException e)
  {
 e.printStackTrace();
  }
  }
}

Para executar um arquivo utilize desta forma:

String arquivo = "C:\\TESTE.DOC"; 
Runtime.getRuntime().exec("cmd /c "+arquivo); 

Se este arquivo estiver em uma pasta protegida como C:/Arquivos de Programas, seu código não funcionará a menos que, utilize da seguinte forma:

  1. String comando = "C:\\Arquivos de Programas\\xxx.doc";  
  2. try {  
  3.     Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+comando);   
  4. catch (IOException e) {  
  5.     e.printStackTrace();  
  6. }  
Pois com estas chamadas de Dlls, você recebe permissão para abrir estes arquivos.

Então é isso galera, uma coisa que aparentemente é simples, mas que ainda dá muita dor de cabeça! Abraços e bons códigos!

Admin: Bruno

Olá Galera! muito grato por estarem acessando nosso blog. Espero que seja possível transmitir de forma compreensível um pouco de meus conhecimentos em programação, para esta comunidade de desenvolvedores que cresce cada vez mais! Espero que Gostem! Abraço! E meu enorme obrigado à Renato Simões, Átila Soares,Wanderson Quinto, Emerson e a toda galera que sempre ajudou meu sincero obrigado....
Especialmente a Natalia Failache e Rita de Cassia que sempre apoiaram este sonho....

De seu amigo Bruno Rafael.