Troquei conforme disse,mais agora nem o netbeans abre o relatório dando a mensagem de erro do catch.
abaixo o codigo trocado
JasperPrintjasperPrint=JasperFillManager.fillReport(getClass().getResourceAsStream("J:/CURSO JAVA SE I 1/EstoqueTci/dist/relClientes.jasper"),newHashMap(),jrRS);
orlandocn
posso estar enganado, mas “J:/CURSO JAVA SE I 1/EstoqueTci/dist/relClientes.jasper” me parece ser um caminho em seu disco rigido.
você deve indicar o caminho do arquivo DENTRO DO SEU JAR. por exemplo, se ele estiver na raiz, basta colocar “/relClientes.jasper”
capiche?
botocudo_killer
bem mais simples fazer desta forma…
cria um pacote ‘Relatorio’ no seu projeto e coloca ele dentro dele.
do que passar esse caminho todo… e tbm vc esta gerando o .jar como ele vai achar essa unidade " J:", na sua maquina sim !,mas e na maquina de outra pessoa…
jallisson_jallis
Vou detalhar:
Meu projeto está na unidade J: dentro da pasta CURSO JAVA SE I 1, o nome do projeto é EstoqueTci.
eu criei um pacote chamado relatório para ficar organizado.
o comando abaixo abre o relatório normal pelo netbeans
try{con.conecta();con.executeSQL("SELECT * from cliente");JRResultSetDataSourcejrRS=newJRResultSetDataSource(con.resultset);JasperPrintjasperPrint=JasperFillManager.fillReport("relatorio/relClientes.jasper",newHashMap(),jrRS);JasperViewer.viewReport(jasperPrint);}
mais não abre o relatório pelo executável .jar que vocês já sabem fica na pasta dist .
orlandocn
cara, nao importa onde fica o seu arquivo jar. Na maquina alvo ele provavelmente vai estar em um diretorio completamente diferente.
DENTRO DO SEU JAR (abra-o com o winzip/winrar para conferir o conteudo) existem varios arquivos, entre eles, espera-se que exista um arquivo “relClientes.jasper”
localize-o DENTRO do seu jar com um compactador qualquer e indique este caminho no seu codigo.
jallisson_jallis
Ok agora sim compreendi o seu entendimento, vou fazer o que diz e logo postarei o resultado.
jallisson_jallis
é orlandocn eu abri o meu arquivo .jar usando usando o winrar e ele tem o arquivo relClientes.class mais não tem nenhum arquivo .jasper o que pode estar acontecendo
orlandocn
vc usa o netbeans?
jallisson_jallis
Sim uso o Netbeans 5.5
orlandocn
coloque o arquivo do jasper no seu diretorio de fontes e dê um shift +F11
[size=18]coloquei todos jars dentro do projeto pelo próprio Netbeans Nome_do_Projeto>Botão Direito>Propriedades>Bibliotecas>Adicionar JAR/pasta e procure todas as suas libs que usa no iReport… [/size]
depois coloquei a pasta relatório com o .jasper dentro da pasta dist e funcionou.
jallisson_jallis
jallisson jallis:
O que fazer para resolver esse problema, na hora de executar pelo netbeans o relatório abri normal agora quando executo pelo .jar não abre nada
Segue abaixo o codigo que uso para o relatório abrir no netbeans
packagerelatorio;importjava.util.HashMap;importjavax.swing.JOptionPane;importnet.sf.jasperreports.engine.JRException;importnet.sf.jasperreports.engine.JRResultSetDataSource;importnet.sf.jasperreports.engine.JasperCompileManager;importnet.sf.jasperreports.engine.JasperFillManager;importnet.sf.jasperreports.engine.JasperManager;importnet.sf.jasperreports.engine.JasperPrint;importnet.sf.jasperreports.view.JasperViewer;importutilitarios.conexao;publicclassrelatClientes{conexaocon=newconexao();publicrelatClientes(){try{con.conecta();con.executeSQL("SELECT * from cliente");JRResultSetDataSourcejrRS=newJRResultSetDataSource(con.resultset);JasperPrintjasperPrint=JasperFillManager.fillReport("dist/relClientes.jasper",newHashMap(),jrRS);JasperViewer.viewReport(jasperPrint);}catch(Exceptionerro){JOptionPane.showMessageDialog(null,"deu erro ="+erro);}}publicstaticvoidmain(Stringargs[]){newrelatClientes();}}