(RESOLVIDO)Abrir relatorio jasper no LINUX

14 respostas
J

Alguém sabe como abrir relatório jasper no Linux, no Windows abre normal segue o código:

private void executaRelatorioCapa() {
    AcessoBD acessoBd = new AcessoBD();
    int indice = tblProcesso.getSelectedRow();

    int mostraID = listProcesso.get(indice).getId();

    try {
         JOptionPane.showMessageDialog(this, "INICIANDO O RELATORIO!", "Informação", JOptionPane.INFORMATION_MESSAGE);
        HashMap parametros = new HashMap();
       //parametros.put("CAMINHO_IMAGEM", System.getProperty("user.dir") + "\\imagem\\logocidade.jpg");
      
        JOptionPane.showMessageDialog(this, "MAPEANDO PARAMETROS!", "Informação", JOptionPane.INFORMATION_MESSAGE);
        InputStream caminhoImagemBrasao = getClass().getResourceAsStream("/sip/imagemrelatorio/logocidade.jpg");           
        parametros.put("CAMINHO_IMAGEM", caminhoImagemBrasao);
        //parametros.put("CAMINHO_IMAGEM3", System.getProperty("user.dir") + "\\imagem\\logoprefeitura.jpg");
        parametros.put("ID_PROCESSO", (long) mostraID);
        JOptionPane.showMessageDialog(this, "LOCALIZANDO O JASPER!", "Informação", JOptionPane.INFORMATION_MESSAGE);
        //JasperPrint jp = JasperFillManager.fillReport(System.getProperty("user.dir") + "//relatorios//FolhaRosto.jasper", parametros, acessoBd.conectar());
       
        InputStream is = getClass().getResourceAsStream("/sip/relatoriosarquivo/FolhaRosto.jasper");
        JOptionPane.showMessageDialog(this, "CONFIGURANDO PARA EXIBIÇÃO!", "Informação", JOptionPane.INFORMATION_MESSAGE);
        JasperPrint jp = JasperFillManager.fillReport(is, parametros, acessoBd.conectar());
        
        JOptionPane.showMessageDialog(this, "Aquarde enquanto é gerado!", "Informação", JOptionPane.INFORMATION_MESSAGE);
        JasperViewer.viewReport(jp, false);


    } catch (JRException | NullPointerException ex) {
        Logger.getLogger(EmissaoLicencaFrame.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(this, ex);
    }
}

14 Respostas

C

Qual a stack que acontece ao tentar abrir o relatorio?

J

na hora de abrir relatório no Linux não da nenhuma exceção, simplesmente não abre

C

esta executando o arquivo .jar ou por ide?

J

estou executando.jar vi em alguns fóruns pode ser as fontes que uso no relatório será isso?

C

É um erro que acontece tambem, sem ver uma stack fica dificil de entender oque esta acontecendo.

Quando vai emitir o relatorio não eh mostrado o JOptionPane do cath?

J

o estranho é isso não mostra a exceção do JOptionPane no linux, o ultimo JOptionPane que ele exibe é esse
JOptionPane.showMessageDialog(this, "CONFIGURANDO PARA EXIBIÇÃO!", "Informação", JOptionPane.INFORMATION_MESSAGE);

J

Não sei se tem a ver com o caminho do relatório no Linux ou fontes proprietárias, andei olhando o jar do IRPF eles colocam os .jasper solto dentro do pacote do projeto.

C

Nao deve estar executando a exception correta.

Altere o codigo e coloque no catch:

cath(Exception ex){
    ex.printStackTrace();
}

compile e rode o jar direto pelo terminal.

J

ok vou testar aqui e colocar o ex em um JOptionPane

J

olha ai @campelo.m era o que eu imaginava

C

So colocar a font entao e o problema estara resolvido. :smiley:

J

valeu aí @campelo.m pela dica da exceção.

C

Uma dica,

Nunca é bom mostrar a exception pro usuario, mostre uma msg amigavel e salve a stack em um arquivo dentro do local instalado,

J

na hora valeu

Criado 8 de novembro de 2017
Ultima resposta 8 de nov. de 2017
Respostas 14
Participantes 2