Relatório não gera quando executado pelo .jar

4 respostas
java
Alyesson

Tenho um sistema que gera relatórios pelo IReport 5.6.0, estou usando o seguinte código abaixo:

try 
  {
      conecta_computador.conecta();
      conecta_computador.executeSQL("Select * from cadastro_produto");

      JRResultSetDataSource relatResult = new JRResultSetDataSource(conecta_computador.resultset); 

      JasperPrint jasperPrint = JasperFillManager.fillReport("relatorios/relatorio_micro_TI.jasper", new HashMap(), relatResult);

      JasperViewer jPrint = new JasperViewer(jasperPrint); //cria instância para impressão

      jPrint.setVisible(true); //chama o relatório para exibição
      
  } catch (JRException erro){
             JOptionPane.showMessageDialog(null,"Erro ao gerar relatório : " +erro);
   }
}

O código acima gera o relatório no NetBeans sem nenhum problema (Quando o executo no NetBeans).

Entretanto, quando vou na pasta dist e vou executar o meu .jar e tento gerar o relatório pelo sistema ele dá esse erro:

Onde estou errando? Já tentei de tudo mas não to conseguindo resolver isso…

4 Respostas

T

Ele não esta encontrando o relatório, coloca em um lugar especifico tipo c:/relatorio apenas para testar se é isso, se sim fica mais fácil descobrir porque ele não está encontrando.

H

Você não pode usar “relatorios/relatorio_micro_TI.jasper” dentro de um .jar diretamente por ser um arquivo zipado, use o método getClass().getResource(“relatorios/relatorio_micro_TI.jasper”).

Alyesson

Eu consegui resolver o problema, eu coloquei o caminho onde o software vai ficar instalado no caso C:/Programs Files X86… e deu certo…

Thnks

Chaybelucas

Pra evitar erros, caso vá distribuir para linux, etc, cria um JFileChooser pra escolher um lugar onde salvar. Assim não tem erro! :wink:

Criado 20 de novembro de 2016
Ultima resposta 21 de nov. de 2016
Respostas 4
Participantes 4