(Resolvido) Invocar Planilha via JAR no Vista

2 respostas
Prudencio

Hiho!

Tenho um problema muito tosco, e nem estou falando do Vista ainda...

Temos uma função padrão para exportação de dados de um JTable para uma planilha do excel (ou equivalente), mas a planilha não é exibida no vista (ela é criada corretamente, mas não é exibida).

Distribuições Linux e Windows XP funcionam sem problemas, mas o vista não pretende colaborar...

O código:

try {
            String osName = System.getProperty("os.name").toLowerCase();

            if (osName.contains("windows")) {
                Process child = Runtime.getRuntime().exec("RunDLL32.EXE shell32.dll,ShellExec_RunDLL " + filename);
            } else if (osName.contains("linux")) {
                Process child = Runtime.getRuntime().exec("ooffice " + filename);
            } else {
                throw new UnsupportedOperationException("Sistema operacional não suportado: " + osName + ".");
            }
        } catch (IOException ex) {
            throw new XlsExporterException("Não foi possível abrir o arquivo XLS: " + ex.getMessage());
        }

Creio que seja alguma restrição de segurança do Vista, mas como não usamos essa plataforma no desenvolvimento, fico com os testes mais limitados.

Alguma idéia?

Nem mesmo a SecurityException é lançada (tentei ao recorrer à API).

Idéias são bem vindas :D

[]s

2 Respostas

T

De fato,

Process child = Runtime.getRuntime().exec("RunDLL32.EXE shell32.dll,ShellExec_RunDLL " + filename);

não funciona no Vista porque você não tem mais essa RunDLL32. Se estiver usando Java 6.0 você pode tentar Desktop.getDesktop().open(…).

Prudencio

A máquina do cliente não está disponível no momento (18:40 aqui), então vou ter de esperar amanhã, ou me meter a instalar o vista em casa =/

Testei sua dica via WinXP e funciona perfeitamente nesta plataforma, agora é aguardar para ver.

O estranho ai é que, mesmo que a DLL não exista, ele responde muito bem ao comando via CMD =/

Valeu thingol!

[]s

Amanhã posto o ‘resultSet’ aqui :smiley:

EDITED: Funcionou perfeitamente! Vlws!

Criado 21 de outubro de 2008
Ultima resposta 21 de out. de 2008
Respostas 2
Participantes 2