Pessoal, é o seguinte:
Me desculpem se este tópico for repetido, e acredito que seja. Mas lendo todos os anteriores e postando algumas vezes sobre isso, ainda assim, nao consegui resolver meu problema.
Em um certo método do JasperReports, tenho que passar o caminho de onde estão meus arquivos .jasper e .jrprint
E eles estão dentro do package Reports da minha aplicacao. Que nao tem package nenhum acima. Assim como os demais fontes. Para retorna o diretório em que estão as classes, eu faço o seguinte:
File pasta = null;
String pastaRel;
try {
pasta = new File( Reports.Relatorio.class.getResource(".").toURI() );
pastaRel = pasta.getAbsolutePath();
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
Que é o código que postei essa semana, mas nao consegui resolver o problema.
Faço isso, pois meus .jasper/.jrprint estão no mesmo package da classe Relatorio. Entao a uso como referencia. Ou seja, pasta recebe o diretorio em que está a classe Relatorio. (Assim como os relatorios que uso).
Quando rodo minha aplicação pelo NetBeans, tudo funciona perfeitamente. Mas quando rodo meu .jar e este método é executado, eu recebo um java.lang.NullPointerException. Esse erro ocorre na linha que atribui um new File pro ‘pasta’.
Já troquei . por / e tb recebi o mesmo erro
Tentei usar getPackage() mas aí recebo um FileNotFoundException
Quando rodo o projeto, este método consegue retornar o caminho que preciso para executar meus relatórios. Mas quando rodo meu .jar, é como se ele nao encontrasse o diretório da classe.
Tentei passar o caminho \Reports, Reports e tb recebo um FileNotFoundException.
Então, pq esse método nao funciona para o meu .jar?