Abrir relatório que está dentro .jar

3 respostas
B

Galera,

Estou tentando abrir um relatório que eu coloquei dentro de um jar. Estou tentando assim:

String path = getClass().getClassLoader().getResource("relatorios/RelatorioDeChamadasPorAgente.jasper").toString().substring(10);
        System.out.println("PATH: " + path);
        File file = new File(path);
        file = file.getAbsoluteFile( );        
        Map<String, Object> params = new HashMap<String, Object>();
        
        params.put("dataini",dataini);
        params.put("datafim",datafim);
        
        try
        {
            JasperPrint jasperPrint = JasperFillManager.fillReport(path, params, new JRTableModelDataSource(jTableAtendimentos.getModel()));
            
            JasperViewer.viewReport(jasperPrint,false);
        }
        catch (JRException ex)
        {
            ex.printStackTrace();
        }

Nesse jar, tem um pacote chamado relatorios, onde estão os relatorios .jasper.
Sem o subString(), o path recebe:

Com ele, o path recebe:

Obrigado!!!

3 Respostas

orlandocn

no lugar do metodo getResource() utilize o metodo getResourceAsStream()

B

Caro Orlando,

Tentei, mas não funfou não!!!

O

Olá Bruno,
Eu costumo fazer assim (não sei se é a maneira mais correcta):

URL arq=getClass().getResource("relatorios/RelatorioDeChamadasPorAgente.jasper");
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(arq);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,params, new JRTableModelDataSource(jTableAtendimentos.getModel()));
Criado 2 de outubro de 2007
Ultima resposta 3 de out. de 2007
Respostas 3
Participantes 3