(RESOLVIDO)Abrir relatorio jasper no LINUX

14 respostas
jallisson_jallis

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

campelo.m

Qual a stack que acontece ao tentar abrir o relatorio?

jallisson_jallis

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

campelo.m

esta executando o arquivo .jar ou por ide?

jallisson_jallis

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

campelo.m

É 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?

jallisson_jallis

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);

jallisson_jallis

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.

campelo.m

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.

jallisson_jallis

ok vou testar aqui e colocar o ex em um JOptionPane

jallisson_jallis

olha ai @campelo.m era o que eu imaginava

campelo.m

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

jallisson_jallis

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

campelo.m

Uma dica,

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

jallisson_jallis

na hora valeu

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