Pegar o caminho completo de um pasta dentro jar p/ passar parametro de um subrelatório- ireport

0 respostas
rodrigo_rosalin

Pessoal, resolvi de uma forma, mas gostaria de saber se alguém conhece outra forma de fazer isso para uma aplicação desktop.
O problema é o seguinte
Estou chamando um relatório na minha aplicação e preciso passar um parametro que é o caminho do sub relatório.

teria como pegar o caminho real de uma pasta que esta dentro do meu jar que ficasse desta forma?
“C:\Documents and Settings\rodrigo.rosalin\Meus documentos\NetBeansProjects\ControleAcessoPrincipal\src\Relatorios”

Para chamar meu relatorio estou passando o caminho estatico da pasta que contém o sub relatório ficando assim, mas não posso deixar desta forma.

HashMap<Object,Object> map = new HashMap<Object,Object>(); 
    map.put("SUBREPORT_DIR","C:\\Documents and Settings\\rodrigo.rosalin\\Meus documentos\\NetBeansProjects\\ControleAcessoPrincipal\\src\\Relatorios\\");
getClass().getResource("/Relatorios/").getPath();

Utilizando o metodo acima é retornado um caminho assim.
/C:/Documents%20and%20Settings/rodrigo.rosalin/Meus%20documentos/NetBeansProjects/ControleAcessoPrincipal/build/classes/Relatorios/

A única solução encontrada até agora para exibir o relatório foi criar um método que manipulasse a String.

public String pegaCaminhoReal(String caminho)
    {
        String caminhoErrado = getClass().getResource("/Relatorios/").getFile();
        String novo = caminhoErrado.replaceFirst("/","").replace("/", "\\").replace("%20"," ");

        return novo;
    }

//ficando assim na hora de passar o parâmetro 

    HashMap<Object,Object> map = new HashMap<Object,Object>(); 
    map.put("SUBREPORT_DIR",this.pegaCaminhoReal("/Relatorios/"));

Isso me cheira um pouco mal, alguém conhece outra forma?

Criado 29 de abril de 2009
Respostas 0
Participantes 1