Abrir arquivo com aplicativo padrão

4 respostas
S

Ola Pessoal,

Tem como eu abrir um arquivo “qualquer” com o programa padrão registrado no Windows?

Meu problema é que quero abrir um PDF após gera-lo com o Jasper, mas sem especificar o caminho completo do Acrobat.

Ibrigado

4 Respostas

C

Acho que pouca gente sabe desse truque, mas se o tipo de arquivo for registrado no Windows, ele se torna "executável":

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:Documents and Settingscvillela>cd desktop

C:Documents and SettingscvillelaDesktop>dir
 Volume in drive C has no label.
 Volume Serial Number is E8CE-ECE2

 Directory of C:Documents and SettingscvillelaDesktop

12/05/2003  13:53    <DIR>          .
12/05/2003  13:53    <DIR>          ..
12/05/2003  12:49           103.060 teste.pdf
              11 File(s)        103.060 bytes
               4 Dir(s)   3.770.847.232 bytes free

C:Documents and SettingscvillelaDesktop>teste.pdf

C:Documents and SettingscvillelaDesktop>

(janela do Acrobat abre)

Então, apesar de detonar com o WORA (Write Once Run Anywhere), dar um exec() no seu arquivo deve ser suficiente... alguém aí sabe de um jeito melhor?

L

Tenta assim, eu já testei aki e deu certo.

import   java.io.*; 

class execInput { 
    public static void main(String Argv[]) { 
   try { 
       String ls_str; 

       Process ls_proc = Runtime.getRuntime().exec("cmd /C seuarquivo.pdf "); 

       BufferedReader ls_in = new BufferedReader(new InputStreamReader 
                                          (ls_proc.getInputStream())); 

       try { 
      while ((ls_str = ls_in.readLine()) != null) { 
          System.out.println(ls_str); 
      } 
       } catch (IOException e) { 
      System.exit(0); 
       } 
   } catch (IOException e1) { 
       System.err.println(e1); 
       System.exit(1); 
   } 

   System.exit(0); 
    } 
}

Acho que isso resolve também seu problema. Falow!!!!

G

Buenas, e quando estou utilizando Linux- Ubuntu, ou Mac por exemplo não tem um metodo que chama o programa padrao para aquele formato de arquivo???

C

use a classe Desktop que abri arquivos pelo programa padrão para executar tal extensão.

Criado 12 de maio de 2003
Ultima resposta 25 de out. de 2011
Respostas 4
Participantes 5