Uma solução mais multiplataforma para esta situação seria utilizar a classe Desktop
File file = new File("/caminho/nomeDoArquivo.ppt"); // arquivo a ser aberto
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop(); // recebe uma instância da classe Desktop referente ao seu sistema
desktop.open(file); // abre o arquivo
}
[quote=Eric Yuzo]Uma solução mais multiplataforma para esta situação seria utilizar a classe Desktop
File file = new File("/caminho/nomeDoArquivo.ppt"); // arquivo a ser aberto
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop(); // recebe uma instância da classe Desktop referente ao seu sistema
desktop.open(file); // abre o arquivo
}[/quote]
:thumbup:
Muito melhor a utilização dessa classe Eric, o Runtime é muito cheio de frescura, vou implementar essa classe nos meus projetos de agora em diante, até porque pelo pouco que eu vi o Desktop se sai muito melhor na interação com o Linux.
Só um detalhe, não consegui fazer funcionar assim.
File file = new File("/caminho/nomeDoArquivo.ppt");
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
desktop.open(file);
}
Tive que fazer assim:
File file = new File("/caminho/nomeDoArquivo.ppt");
if (Desktop.isDesktopSupported()) {
Desktop desktop = null;
desktop = Desktop.getDesktop();
desktop.open(file);
}
[quote=ViniGodoy]Sua correção não faz o menor sentido. No Java, os dois códigos são totalmente equivalentes.
Assim deveria funcionar também:
if (Desktop.isDesktopSupported()) {
Desktop.getDesktop().open(new File("/caminho/nomeDoArquivo.ppt"));
}
[/quote]
Quando utilzei o Runtime nao poderia ter espaço no endereço, e tive alguns problemas onde eu apontei o arquivo e ele deu problema de que não tinha permissão para executar esse arquivo, o problema de permissão tive no Linux, ja com o Desktop não encontrei esses problemas.
Assim funcionou mesmo
if (Desktop.isDesktopSupported()) {
Desktop.getDesktop().open(new File("/caminho/nomeDoArquivo.ppt"));
}
Antes de encerra o tópico, gostaria de tirar mais uma duvida !
Essa condição isDesktopSupported() não entendi o porque dela, utilizei no meu código sem essa condição e funcionou perfeitamente, o porque devo utiliza-la ?
if (Desktop.isDesktopSupported()) {
Desktop.getDesktop().open(new File("/caminho/nomeDoArquivo.ppt"));
}
E também está sendo gerada uma exceção aqui:
Exception in thread "main" org.apache.poi.hslf.exceptions.OldPowerPointFormatException: Based on the Current User stream, you seem to have supplied a PowerPoint95 file, which isn't supported
Exception in thread "main" org.apache.poi.hslf.exceptions.OldPowerPointFormatException: Based on the Current User stream, you seem to have supplied a PowerPoint95 file, which isn't supported
Fiquei na duvida porque não estou utilizando um powerpoint 95 só 97/2003!