[Resolvido] Chamar o programa associado ao arquivo

6 respostas
ricardormdr

Olá a todos!

estou começando em java e gostaria de uma ajuda se possível!
estou precisando chamar um programa associado a um arquivo via comando java!

exemplo se eu passar por parâmetro “c:\docs\texte.doc” o programa me chamaria o word ou broffice enfim qualquer que seja o editor de texto que o usuário use.
da mesma forma se eu passar “www.terra.com.br” o sistema automaticamente me chamaria o navegador padrão do sistema operacional!

Já dei uma pesquisada e não encontrei nada que eu conseguisse fazer funcionar!

desde já agradeço a todos!

6 Respostas

eltonads

Tente usando a classe/método Desktop.getDesktop().open(File);

Boa sorte,

ricardormdr

cara eu já tentei isso!
Desktop.getDesktop().open("/home/ricardo/config.properties");

porém o netbeans simplesmente não deixa eu usar isso e nem runtime também não!

J

isso so roda no xp pra baixo, acredito eu....... o codigo abaixo, mt mal feito, é de um botao que abre um arquivo que foi gerado... enfim o que vc pode aproveitar dae é o Runtime.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    if ((new File("c:\Arquivo.xls")).exists()) {
    Runtime rt = Runtime.getRuntime();
        try {
            rt.exec("RunDLL32.EXE shell32.dll,ShellExec_RunDLL C:\Arquivo.xls");
        } catch (IOException ex) {
            Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }else{
        JOptionPane.showMessageDialog(null, "Crie o arquivo");
    }

    }
douglaskd

como assim não deixa?

ele grifa? gera algum erro?

da acesso negado?

eltonads

@jomapiju
Desse jeito não fica portável o código… E pelo jeito, nosso amigo está usando Linux…

@ricardormdr
Em que versão da JVM você está tentando isto? Acredito que esta abordagem da classe Desktop, se igual à funcionalidade “browse” (que abre o navegador padrão) só deve funcionar a partir do Java 6. Outra coisa: o argumento que você deve passar é um File, ficando assim:

Desktop.getDesktop().open(new java.io.File("/home/ricardo/config.properties"));

Boa sorte,

ricardormdr

Buenasa estou realmente usando Linux e o NetBeans 6.8 a VM é a 1.6 se não me engano!

o fato é que o netbeans grifa isso dizendo que eu tenho que adicionar o (import java.awt.Desktop;) feito isso ele me da erro! dizendo que não acha o (java.lang.string)

e acontece algo semelhante com o runtime tambem!

desde já estou agradecendo a todos pelos posts!!!

Criado 21 de outubro de 2010
Ultima resposta 21 de out. de 2010
Respostas 6
Participantes 4