Nao consigo buscar o .jasper pelo caminho relativo

Blz?

Galera eu to fazendo um trabalho aqui pra facul. To usando JSF. Nesse trabalho eu monto um relatorio com iReport. Gero o .jasper e chamo com a função abaixo

        public void relatorioGeral(ActionEvent actionEvent)
	{
		Pool pool = new Pool();
        Connection con = pool.getConnection();
        HashMap<String, Date> parametros;
        parametros = new HashMap<String, Date>();
        parametros.put("DATA_INICIO", dtPesquisa1);
        parametros.put("DATA_FIM", dtPesquisa2);
        String propri = propriedadeDt.equals("dtBoa") ? "relChDtBoa" : "relChDtRef";
        try
        {
            JasperPrint jp = JasperFillManager.fillReport("C:/rels/" + propri + ".jasper", parametros, con);
            JasperExportManager.exportReportToPdfFile(jp, "C:/rels/relCh.pdf");
           // java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
            //desktop.open(new File("C:/rels/relCh.pdf"));
        }
        catch(Exception e)
        {
            FacesContextUtil.setMensagemErro("Problemas para montar relatório de cheques! ERRO: " + e.getMessage());
        }
	}

até que esta funcionando, mas eu queria conseguir fazer com o caminho relativo e nao do jeito q esta. Até para poder fazer um link para ele e tals…
ja perdi uma madrugada com isso e nao deu certo heheh…
Se alguem der uma luz eu agradeço!

T+

[quote=afonsoaaf]Blz?

Galera eu to fazendo um trabalho aqui pra facul. To usando JSF. Nesse trabalho eu monto um relatorio com iReport. Gero o .jasper e chamo com a função abaixo

        public void relatorioGeral(ActionEvent actionEvent)
	{
		Pool pool = new Pool();
        Connection con = pool.getConnection();
        HashMap<String, Date> parametros;
        parametros = new HashMap<String, Date>();
        parametros.put("DATA_INICIO", dtPesquisa1);
        parametros.put("DATA_FIM", dtPesquisa2);
        String propri = propriedadeDt.equals("dtBoa") ? "relChDtBoa" : "relChDtRef";
        try
        {
            JasperPrint jp = JasperFillManager.fillReport("C:/rels/" + propri + ".jasper", parametros, con);
            JasperExportManager.exportReportToPdfFile(jp, "C:/rels/relCh.pdf");
           // java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
            //desktop.open(new File("C:/rels/relCh.pdf"));
        }
        catch(Exception e)
        {
            FacesContextUtil.setMensagemErro("Problemas para montar relatório de cheques! ERRO: " + e.getMessage());
        }
	}

até que esta funcionando, mas eu queria conseguir fazer com o caminho relativo e nao do jeito q esta. Até para poder fazer um link para ele e tals…
ja perdi uma madrugada com isso e nao deu certo heheh…
Se alguem der uma luz eu agradeço!

T+[/quote]

Oi

O segredo é você usar o método getResourceAsStream

Dê uma olhada nos tópicos

http://www.guj.com.br/posts/list/66810.java

http://www.guj.com.br/posts/list/66392.java

Olá.

Algo assim??

InputStream caminho = this.getClass().getClassLoader().getResourceAsStream(“as/com/sisclinica/relatorio/Pacientes.jasper”);

Te mais…

por que não simplificar?

getClass().getResourceAsStream("pacoteDoArquivo")

Valeu galera mas o obj InputStream ainda vem nulo com o caminho relativo… vou ter q deixar como esta por enquanto

Estou com o mesmo problema do colega acima. Ao tentar buscar o arquivo com o caminho relativo, meu ImputStream retorna null.

Já tentei de varias formas citadas aqui nesse topico e em outros daqui do forum.

É uma aplicação desktop.

Agradeço qualquer ajuda.

Abraços!