[Resolvido] Obter um arquivo da raiz do .jar

2 respostas
Marcos_GdT

Pessoal, estou fazendo um relatório no JasperReport, e estou tendo um probleminha chato de resolver.
Não consigo pegar um arquivo xml da raiz do meu .jar de maneira nenhuma.

minha classe esta em :Arquivo_jar\br\com\ativos\report\rule
meu xml esta em :Arquivo_jar (diretório raiz)

minha intenção final é usar esse arquivo xml da seguinte maneira: JasperReport relatorio = new JasperCompileManager().compileReport(“ARQUIVO.xml”);

ja usei diversas maneiras de obter esse arquivo, tais como:

  • Thread.currentThread().getContextClassLoader().getResource(“ARQUIVO.xml”).toString();
    nocaso acima gera o caminho completo, mas nao consigo usar ele, o java não entende o caminho

  • ClassLoader classLoader = getClass().getClassLoader();
    
    java.io.InputStream inputStream = classLoader.getResourceAsStream(“ARQUIVO.xml”);
    
    no caso acima gera o caminho completo, mas nao consigo usar ele, o java não entende o caminho
    
  • Tentei inclusive voltar 5 diretórios acima com a string “…/…/…/…/…/ARQUIVO.xml”
    Nada consegue pagar esse arquivo !

ps: Essa arquitetura não é pessoal minha, não posso alterar o diretório desse arquivo.xml

Alguém pode me ajudar ??

2 Respostas

pedruhenrik

tenta isso e coloca o xml dentro de SRC

att,

Marcos_GdT

Deu certo… !!!

Fiz da seguinte forma:

ClassLoader classLoader = getClass().getClassLoader();  
java.io.InputStream inputStream = classLoader.getResourceAsStream("RELATORIO.xml");

Tinha esquecido que o método compileReport também recebe um InputStream

JasperReport relatorio = JasperCompileManager.compileReport(inputStream);

Valeu pedruhenrik pela ajuda !

Criado 26 de maio de 2011
Ultima resposta 26 de mai. de 2011
Respostas 2
Participantes 2