sexta-feira, 8 de junho de 2012

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!

2 comentários:

  1. Tem como enviar parâmetros? Exemplo:
    Mandar um texto para o notepad?

    ResponderExcluir
  2. Caro Paulo, para esta função que desejas, deves utilizar uma biblioteca específica para isso, exemplo, para enviar dados para excel você utiliza o JexcelAPI. Provavelmente deve haver uma para o notepad... Abraços! Bruno Rafael.

    ResponderExcluir

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.