Já fiz de tudo…mas não consigo resolver…meu relatório não abre pelo executável apenas no NetBeans. Ao executar ele pelo CMD ele dá esse erro:
ERRO: java.io.FileNotFoundException: file:\C:\Users\Administrator\Documen
ema_Controle\dist\Sistema_Controle.jar!\br\com\relatorios\RelMapa.jasper
Já adicionei todas as lib no ClassPath e ainda não resolveu.
Não precisa ficar abrindo vários tópicos para o mesmo problema.
Os links que te passei trabalham da maneira como eu sugeri, usando caminho relativo.
Este projeto está no githuib? Consegue compartilhar ele?
Cara, estou desesperado! Mas enfim…
E o projeto? É maven? Está no github? Sem vê-lo, impossível prosseguir.
Não está em nenhum desses. eu tenho quase certeza que o problema está na minha Classe, só não estou conseguindo enxergar. O projeto é da empresa, não posso disponibilizar assim. Não me conformo que essa classe funciona de um jeito e de outro não. Mas de qualquer forma, valeu mesmo pela força, ajudou muito!
Estou tentando dessa forma, mas está dando erro no meu botão imprimir
public void gerarRelatorio(HashMap parametros, String nomeRelatorioJasper) {
try {
JasperPrint relatorio = null;
JasperReport jasperReport = null;
InputStream jasperFile = Thread.currentThread().getClass().getResourceAsStream("/br/com/relatorios" + nomeRelatorioJasper + “.jasper”);
jasperReport = (JasperReport) JRLoader.loadObject(jasperFile);
relatorio = JasperFillManager.fillReport(jasperReport, parametros, this.connection = new ConnectionFactory().getConnection());
JasperViewer viewer = new JasperViewer(relatorio, false);
viewer.setTitle(“Relatório”);
viewer.setVisible(true);
viewer.toFront();
} catch (JRException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
botão imprimir
linha que está dando erro:
String nomeRelatorioJasper = “RelMapa”;
String file = new RelatorioService().gerarRelatorio(params, nomeRelatorioJasper);
Consegui resolver:
Mudei minha classe, sem transformar para PDF:
public String gerarRelatorio(HashMap parametros, String nomeRelatorioJasper) {
try {
JasperPrint relatorio = null;
JasperReport jasperReport = null;
InputStream jasperFile = Thread.currentThread().getClass().getResourceAsStream("/br/com/relatorios/" + nomeRelatorioJasper + “.jasper”);
jasperReport = (JasperReport) JRLoader.loadObject(jasperFile);
relatorio = JasperFillManager.fillReport(jasperReport, parametros, this.connection = new ConnectionFactory().getConnection());
JasperViewer viewer = new JasperViewer(relatorio, false);
viewer.setVisible(true);
viewer.toFront();
} catch (JRException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return nomeRelatorioJasper;
}
E no botão ficou desta forma:
try{
//Lista com os parametros para o relátorio
HashMap params = new HashMap<>();
String nomeRelatorioJasper = “RelMapa”;
//Passândo parâmetros e convertendo o dados pra ser compativel - Parâmetros são gerados no relatório.jasper
params.put(“data_mapVei”, Data_inicial.getText());
params.put(“data_mapChe”, Data_Final.getText());
params.put(“placa_map”, txt_placa.getText());
//Invocando a geração do relatório
String file = new RelatorioService().gerarRelatorio(params, nomeRelatorioJasper);
}catch(Exception e){
System.out.println("ERRO: "+e.getMes