Problemas com Runtime.getRuntime().exec() no ubuntu [Resolvido]

3 respostas
tinorberto

Olá, estou desenvolvendo uma aplicação desktop, e estou tendo problemas:

Apos criar um arquivo xls, eu executo ele. No windows estou usando:

Runtime.getRuntime().exec("cmd /c"+caminho+nome+".xls");

Funciona, mas não no ubuntu. Coo que eu faço isso?

Obrigado

3 Respostas

gregorioarthur
Runtime.getRuntime().exec("oocalc arquivo.xls");

esse oocalc se refere ao Calc do OpenOffice, que é o Excel Genérico do linux.

Testa ai.

tinorberto

bom muito isso mesmo.

Achei algumas coisas nesse link http://www.rgagnon.com/javadetails/java-0014.html e nesse http://www.linuxquestions.org/questions/programming-9/opening-file-with-xls-on-linux-shell-prompt-210569/

Obrigado…flw

ViniGodoy

O ideal, após o Java 6, é usar a API de desktop pra solicitar que ela abra o arquivo com o programa padrão.

Assim, o seu programa continuará funcionando em Windows, Linux e outros SOs, mesmo que a pessoa use o StarOffice no lugar do Excel.

Você usa assim, considere abrirComExec como sendo sua função atual:
public void abrir(File arquivo) {
   if (!Desktop.isDesktopSupported()) {
      abrirComExec(arquivo);
      return;
   }

   desktop = Desktop.getDesktop();

   if (!desktop.isSupported(Desktop.Action.OPEN)) {
      abrirComExec(arquivo);
      return;
   }       
   desktop.open(arquivo);
}

Esse programa tenta abrir com o desktop antes de recorrer ao exec.

Criado 10 de outubro de 2010
Ultima resposta 11 de out. de 2010
Respostas 3
Participantes 3