Prolemas com Relatórios Ireport - Java

Boa tarde pessoal,

Estou com um problema e acredito que vocês conseguem me ajudar. Consigo ao executar meu Projeto no Netbeans trazer os relatórios sem problemas, da mesma forma ao gerar a Dist e executá-la (No Computador onde está o projeto). Se eu levar essa Dist para outra máquina (Cliente) já não consigo abrir… Pesquisei muito sobre isso e tenho a certeza que não é problema referente à caminhos de arquivos(Até porque neste computador funciona). Meu relatório contém Imagem e pesquisando sobre isso ouvir falar de um Parâmetro que deve ser usado, algum de vocês podem me ajudar?

Você tem que por os relatórios na raiz do programa e usar o caminho.
Exemplo
JasperReport relatorio = (JasperReport) JRLoader.loadObject(getClass().getClassLoader().getResource("Relatorio/RelAchados.jasper"));

esta no pacote relatorio e o nome do arquivo é RelAchados.jasper

Abraç

Não conseguir…

int confirma = JOptionPane.showConfirmDialog(null, "Confirma a visualização do Relatório?", "Atenção", JOptionPane.YES_NO_OPTION);
    if(confirma ==  JOptionPane.YES_OPTION){
    try {
        InputStream caminho = getClass().getResourceAsStream("/Relatorios/Rel_Clientes.jasper");
        JasperPrint print = JasperFillManager.fillReport(caminho, null, conexao);
        JasperViewer.viewReport(print, false);
    } catch (JRException ex) {
        Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
    }

assim está o meu, dentro do Pacote Relatorios.

Muito estranho porque quando eu gero a Dist, tudo funciona perfeito neste computador… mas ao passar para outra máquina não abre os relatórios. Por esse motivo descartei que seria algo relacionado a caminhos sabe

Posta o erro que dá na outra máquina, mas, quase 100% que é o caminho…

Tira a barra deixa assim

("Relatorios/Rel_Clientes.jasper")

Vou tentar explicar digitando o porque de eu achar que não seja caminho.

Ao executar o projeto na IDE tudo funciona perfeitamente… (Até aqui blz)

Ao gerar a Dist e colocar no C: por exemplo e executá-la também funciona perfeitamente a chamada dos relatórios… (NESTE COMPUTADOR)

Se eu copiar essa mesma pasta Dist e colocar em outro computador não funciona… me explica essa lógica? kkk Até cheguei a pensar que seria preciso instalar algum programa nesse computador onde não executou talvez.

Você sabe me dizer se conter imagens dentro do .Jasper/.Jrxml é preciso de alguma chamada no código? Eu acredito que não, visando que no ireport você compila o arquivo né… já ficaria tudo ‘Compilado’

Logs? Mensagens de erro?

Vc está copiando todas as pastas né? do seu projeto inteiro, não é apenas a dist… os relatórios normalmente ficam na src se você copiar apenas a dist para outro pc ela não vai encontrar os relatórios

Não existe mensagens de erro, simplesmente não abre ao mandar abrir.

Acontece o seguinte, eu tenho 3 chamadas de Relatórios .Jasper que estão localizadas dentro de um Pacote do Projeto chamado Relatorios.
E mais 2 chamadas de Relatórios .Jrxml que estão localizadas na raiz do projeto, então ao gerar a Dist eu preciso copiar a pasta Relatorios da raiz que contem estes 2(DOIS) e deixar dentro dela.
Acontece que ao executar o .Jar neste computador ele funciona, faz as chamadas destes relatórios e tudo mais sem erros… mas ao executar esse .Jar em outro computador ele não faz essas chamadas. Muito estranho

Sério? kkkkkkk

Então me explica por favor, eu gero a Dist e MOVO somente ela (DIST) para outra pasta (FORA DO PROJETO) e tudo funciona, e ao colocar somente ela (DIST) em outro Computador não funciona…

Lembrando… FORA DO PROJETO

Já tentou? não deu certo?

Vou realizar esse teste agora.

Bom, bem como eu imaginava não deu certo.
Não justifica ter que colocar o projeto inteiro e sim somente a Dist, ao compilar o projeto todos os pacotes, bibliotecas, etc são compiladas para o .Jar sendo não necessário você mandar junto a aplicação o Código Fonte.

Enfim, como eu utilizei imagens dentro do iReport, vou tentar enviar essa mesma imagem junto ao projeto para saber se pode ser isso.

Uma pergunta, o Cliente que vai receber a aplicação Java SE precisa de ter algum software específico instalado para que a aplicação possa funcionar? Tipo requisitos

Que pena então, quando o meu não estava funcionando eram duas coisas:

1- Não tinha colocado a imagens como parâmetro.
2- O caminho não estava acessível pelo outro pc.

Desculpa não conseguir te ajudar… Boa sorte.

Então amigo, como você coloca a imagem como parâmetro? Pode ser isso, na verdade acho que seja isso

Dá uma olhada nesse tópico, não tem erro se for esse o problema.
Acho que seja
Abrços

Também acredito que seja, vou dar uma olhada. De qualquer forma, muito obrigado!

            try{
               conexao = ModuloConexao.conector();

              // HashMap imp = new HashMap();
              // imp.put("filtro",Integer.parseInt(TxtData.getText()));
                Map<String, Object> imp = new java.util.HashMap<>(1);
                //imp = new Map<String, Object>;
                imp.put("filtro", txtDatinha.getText()); //Filtro paramentro dentro do relatorio
               
                
                JasperReport relatorio = (JasperReport) JRLoader.loadObject(getClass().getClassLoader().getResource("Relatorio/RelAchados.jasper"));
                
                JasperPrint print = JasperFillManager.fillReport(relatorio, imp, conexao);
                JasperViewer.viewReport(print, false);
                     
                
            }catch(Exception e)
            {
                JOptionPane.showInputDialog(null, e);
            }
            
        }

É só um exemplo, ai você modifica