Problemas com o getResource() no JAR

2 respostas
tiagosarno

Eis o código:

Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+getClass().getResource("/manual/manual.pdf"));

Quando compilo e rodo o programa, o arquivo pdf é chamado normalmente só que quando gero o .jar a chamada para de funcionar dando o seguinte erro:


jar:file:/D:/Projetos/JAVA/sistema/dist/sistema.jar!/manual/manual.pdf
parametro incorreto

a pasta manual esta dentro da pasta img (img/manual/) e img esta dentro do projeto da aplicação, o que será que esta acontecendo?

.

2 Respostas

T

acho que vc nao entendeu o que o getResource faz… ele te devolve um URL… quando esta fora do jar, a url aponta para o arquivo e no jar, ele aponta para uma entrada no jar, que o rundll32 nao consegue saber o que significa

para isso, descompacte o manual para alguma pasta temporaria (pode usar direto getClass().getResourceAsStream( ‘caminho’ ) que ele devole um input stream com o conteudo do arquivo) e executar o comando de lá

tiagosarno

Takeshi, consegui compreender o que disse mas não estou conseguindo escrever a linha do código para executar o pdf, como ficaria a linha do Runtime, tem como me dizer?

Para facilitar estou enviando um print-screen com a arvore de pastas e arquivos de meu projeto.

Obrigado desde já

[]'s


Criado 10 de junho de 2007
Ultima resposta 10 de jun. de 2007
Respostas 2
Participantes 2