Amigos, em minha aplicação swing utilizo o método abaixo para gerar um pdf. Dentro do eclipse ele funciona. Mas quando gero um .jar do programa ele deixa de funcionar.
Alguém sabe porque?
Talvez o problema seja que o .jars necessários não estão dentro do jar gerado para a sua aplicação.
Tenta gerar o .jar usando o pluging do Eclipse - fatjar, ele adiciona no jar a ser gerado todas as classes do classpath.
Este código também nao funcionou, pois aí temos um inputString e não string. Só que pode ser uma pista, visto que o JRXmlLoader aceita um inputString como prâmetro. Aí, ele “parece” que localiza o arquivo, mas dá outro erro “url mal formada”. Só que o arquivo jrxml está perfeito, tanto que funciona com o código que eu passei no primeiro post (funciona dentro do eclipse).
Li em outro post por aí que o java não consegue ler um arquivo dentro de outro jar (isto me parece absurdo, pois os jars são repletos de arquivos).
Alguém mais tem alguma pista< meu prazo tá esgotando, fui até as 4 da manhã e testei inúmeras possibilidades sem sucesso.
não tá faltando o / (barra) antes de bin/br/gov/fazenda/visualizador/apresentacao/relatorios/meuRelatorio.jrxml ficando assim: /bin/br/gov/fazenda/visualizador/apresentacao/relatorios/meuRelatorio.jrxml ?
Porque não coloca rastro da pilha do erro que está acontecendo pra que agente consiga entender melhor?
Este código também nao funcionou, pois aí temos um inputString e não string. Só que pode ser uma pista, visto que o JRXmlLoader aceita um inputString como prâmetro. Aí, ele "parece" que localiza o arquivo, mas dá outro erro "url mal formada". Só que o arquivo jrxml está perfeito, tanto que funciona com o código que eu passei no primeiro post (funciona dentro do eclipse).
Li em outro post por aí que o java não consegue ler um arquivo dentro de outro jar (isto me parece absurdo, pois os jars são repletos de arquivos).
Alguém mais tem alguma pista< meu prazo tá esgotando, fui até as 4 da manhã e testei inúmeras possibilidades sem sucesso.[/quote]
Então…
Abre o teu arquivo .jar com um descompactador (zip, winrar) e verifica o caminho onde está o teu .jrxml…eu acho que tu não vai conseguir pegar o arquivo passando uma String, de dentro do jar…teria que ser o InputStream…Pelo eclipse funciona pq existe o diretório bin, onde ele compila e joga os binários…porém quando é gerado o jar, acredito que esse diretório não vá para o empacotamento…O ideal seria tu criar uma pasta, no mesmo nível do META-INF, tipo "reports", e colocar o teu jrxml lá dentro…aí tu utiliza esse código:
Parabéns Fernando!
Funcionou dentro do Eclipse e fora dele com o .jar.
Agora tem outra coisa que ainda não testei (mas sei que não vai dar certo).
O relatório principal agora vai ter um subReport que estará apontado (caminho relativo - exatamente a mesma coisa anterior) em um arquivo .jrxml, que também estará dentro do .jar.
Assim: O arquivo principal tem um parâmetro apontando para o subrelatorio:
"/relatorios/subRel.jasper"
Eu lembro a voê que isto funciona dentro do eclipse, mas fora dele vou testar agora.
Obrigado.