olá… estou com um pequeno problema com o iReport…
tenho um package no meu projeto chamado “reports” onde estou colocando os meus relatórios… mas quando mando executar com as linhas abaixo, da erro de arquivo não encontrado… só consigo fazer com que funcione se eu colocar todo o diretório, por ex, “c:/meuprojeto/reports/ListaMaterial.jasper”
URL jasper = this.getClass().getResource("/reports/ListaMaterial.jasper");
JasperFillManager.fillReportToFile(jasper.getPath(), parameters, jrRS);
URL jrprint = this.getClass().getResource("/reports/ListaMaterial.jrprint");
JasperViewer.viewReport(jrprint.getPath(), false, false);
mas agora tenho uma outra dúvida…
teria como, após ter gerado o .jar do meu programa, ele buscar o arquivo dentro do .jar sem precisar ter uma pasta externa com os relatórios?
pq da forma que está, tenho q ter dentro do diretório onde está o .jar uma pasta “report” com o meu relatório dentro…
ex: c:/meuprograma/meuprograma.jar
c:/meuprograma/reports/ListaMaterial.jasper
obrigado!
M
marcossousaPJ
Olá,
Da forma que está funciona do mesma forma.
:joia:
T
tharsisPJ
não funciona… esta dando erro de arquivo não encontra ao executar… o .jasper e o .jrprint estão dentro do .jar… segue o erro:
isso ocorre após gerar o .jar… se executar pelo eclipse funciona sem problema…
obrigado!
C
Cosme_Marins
Sei que este post é antigo mas vou deixar aqui como eu consegui fazer, para que possa ajudar outra pessoa que passe por aqui no futuro.
// pego a url do arquivo jasperjava.net.URLurl=getClass().getResource("/br/org/projeto/relatorios/relatorio1.jasper");try{InputStreamfs;fs=(InputStream)url.getContent();//implementação da interface JRDataSource para DataSource ResultSetJRResultSetDataSourcejrRS=newJRResultSetDataSource(itemDao.getRs());//preenchendo o relatorio sendo que jrRS é um resultsetJasperPrintimpressao=JasperFillManager.fillReport(fs,null,jrRS);JasperViewerviewer=newJasperViewer(impressao,false);viewer.setVisible(true);}catch(IOExceptione){// TODO Auto-generated catch blocke.printStackTrace();}