Usando arquivo .jar com o Jasper e Ireport

Pessoal consegui desenvolver meu sistema, ele estava usando o jasper e o ireport pra gerar relatório e estava fazendo isso sem problema. O problema foi quando eu fiz um .jar pra meu sistema: MD.jar, tudo roda direitinho, só quando vai gerar relatório que ele não gera nada, coloquei os arquivos .jar do ireport etc no meu MD.jar , configurei o classpath de várias formas , mas não deu , alguém já teve uma experiência com isso que possa me ajudar?

como tu ta carregando os .jasper?

eu carrego deste jeito e funciona de dentro do .jar

URL url = getClass().getResource(reportFile);  //apenas o nome do arquivo fisico
if (url == null)
    return null;
InputStream is = url.openStream();

Esta classe tem como funcao carregar estes relatorios.
no caso… os meu .jasper estao dentro do mesmo pacote da classe.

ah… o variavel reportFile eh o nome fisico do report

Não entendi direito , mas não sei se eu me expliquei legal tb.

O problema que to tendo é que não é reconhecido os .jar do ireport e do jasper , eu coloquei os .jar em vários lugares(dentro do meu .jar principal , do sistema;coloquei um diretório antes; em vários diretórios; alterei o classpath várias vezes e não adiantou nada)
Mas isso que vc explicou eu tb não entendi nada, daria pra vc dar um exemplo na prática, com os próprios nomes dos arquivos?Mas vc entendeu o meu problema? Porque ás vezes vc pode ter entendido de outra forma.

hmmmm…
na verdade eu ainda nao entendi o teu problema

vc tah usando em ambiente web ou desktop?

desktop

e como vc chama os arquivos .jasper, vc passa o caminho completo do arquivo?

Nao passo o caminho inteiro, faco o seguinte:
os meus relatorios .jasper (q estao dentro do jar) estao no pacote

com.minhaempresa.report.jasper

Crio uma classe, por exemplo, Report em
com.minhaempresa.report

Esta classe por exemplo, tera um metodo para mostra o relatorio na tela:

public void showReport(String reportFile, Map param) {
try {
    URL url = getClass().getResource("jasper/" + reportFile);
    if (url == null)
        return null;
	        
    InputStream is = url.openStream();        	
        	
    JasperPrint jp = JasperFillManager.fillReport(is, param, connection); // aqui vai a tua conexao com o bando

    if (jp == null)
        return;

    JasperViewer.viewReport(jp, false);
} catch(Exception ex) {
    ex.printStackTrace();
}

dai qdo tu quiser ver o relatorio faz

// passa o nome do arquivo fisico, e os parametros
Report r = new Report();
r.showReport("relatorio.jasper", null);

blz?

eu uso de forma parecida, eh em ambiente web, mas axo q a lógica eh a mesma.

eu tenho um jar com as classes da minha app.
e tenho um outro jar, somente com os arquivos .jasper, mas dentro do jar eles não estão em nenhum diretório.
coloco os dois no classpath e chamo da msm forma q vc, e funciona na boa.

Show de fabiofalciPJ funcionou perfeito !!!Valewwwwwwwwwwwwwww