[RESOLVIDO]Caminho do .jrxml + jasper reports

Olá,

Estou com um probleminha para gerar meu relatorio

Aqui vai um trecho do codigo

InputStream input = new FileInputStream(new File("doacao.jrxml"));
JasperDesign design = JRXmlLoader.load(input);
JasperReport report = JasperCompileManager.compileReport(design);

Com esse código ele nao encontra o meu .jrxml, eu nao sei mais o que por ali… não sei qual o caminho que eu devo escrever…
se eu colocar “C:/doacao.jrxml” ele funciona… mas porque quando passo um caminho de dentro do projeto ele nao encontra?

Espero que possam me ajudar

Obrigada
:roll:

jLady,

eu tentaria buscar o caminho real, vê se ajudam em algo.

getAbsolutePath();
getPath();
getRealPath();

att,

Vc está compilando o relatório toda hora que o chama?
Pq não usa o .jasper?
O processo de compilação pode ser automatizado no build.xml do ant.
Para carregar arquivos de dentro do projeto, que por sua vez estarão dentro do .jar, você deve usar os métodos getResource() ou getResourceAsStream() da classe Class. Ambos os métodos recebem como parâmetro o caminho interno do arquivo desejado dentro do projeto. Imagine que seu arquivo .jrxml esteja no pacote a.b.c. O parâmetro então seria “/a/b/c/arquivo.jrxml”. Lembrando que os métodos citados retornam respectivamente um objeto URL e um objeto InputStream.

Escrevi alguns tutoriais sobre JasperReports no meu blog. Caso interesse, a primeira parte é essa aqui: http://davidbuzatto.com.br/2010/10/09/jasperreports-trabalhando-com-relatorios-em-java-parte-1/

[]´s

mt bom ae!!! ^^

Gente, obrigada!!!
getResourceAsStream funcionou perfeitamente!!!

:wink:

ola davidbuzatto, to com mesmo problema acima so que n consigo resolver
o codigo que to usando é esse:
JRResultSetDataSource jrRS = new JRResultSetDataSource(con.resultset);
JasperPrint JasperPrint =JasperFillManager.fillReport(“relatorios/idoso.jasper”,new HashMap(),jrRS);
JasperViewer.viewReport(JasperPrint);
tem como dizer algo pra resolver?

Mano, coloca entre “code” os códigos que você vai postar aqui, fica mais fácil para te ajudar :slight_smile:

Coloca a pasta “relatorios” no “class path” que vai funcionar =D

onde fica a class patch

xp

É o diretório de onde tua aplicação vai buscar as classes cara…

ola gerva, desculpe é por que to iniciando
mas o meu problema é que no netbeans a
aplicação funciona perfeitamente porem
quando gero o .jar a aplicação nao emite os
relatorios da um erro:
net.sfjasperreport.engine.JREException:java.io.FileNotException: relatorios\teste.jasper
pode ajudar ?

Como eu falei mano, tem que olhar onde é o diretório que você ta salvando as aplicações.
Você não lembra de ter setado o class path quando tava configurando o netbeans?

Da uma olhadinha aqui: http://www.google.com.br/url?sa=t&source=web&cd=9&ved=0CGwQFjAI&url=http%3A%2F%2Fjavahowto.blogspot.com%2F2006%2F06%2Fset-classpath-in-eclipse-and-netbeans.html&rct=j&q=configurando%20classpath%20netbeans&ei=8luPTuvgIdO2tweo5biQDA&usg=AFQjCNGh9LwzBosGI6je92NIpooHw0ZTZw&sig2=is5jLJZcpoGPNGgGjGQIlg&cad=rja

[quote=Gerva]Como eu falei mano, tem que olhar onde é o diretório que você ta salvando as aplicações.
Você não lembra de ter setado o class patch quando tava configurando o netbeans?

Da uma olhadinha aqui: http://www.google.com.br/url?sa=t&source=web&cd=9&ved=0CGwQFjAI&url=http%3A%2F%2Fjavahowto.blogspot.com%2F2006%2F06%2Fset-classpath-in-eclipse-and-netbeans.html&rct=j&q=configurando%20classpath%20netbeans&ei=8luPTuvgIdO2tweo5biQDA&usg=AFQjCNGh9LwzBosGI6je92NIpooHw0ZTZw&sig2=is5jLJZcpoGPNGgGjGQIlg&cad=rja[/quote]
WTF is Class patch?

Tava escrevendo errado e nem notei, “patch” também existe, assim o corretor ortográfico não acusava erro xD foi mals…

Funcionou hugo_w?

ainda não

acho que os relatorios estão no lugar certo
pois tentei com eles na pasta em que estão
as tabelas do banco,mudei o caminho no codigo,
no Netbeans funcionou, e mesmo assim continuou
sem emitir os relatorios no .jar.
OBS:a conexao com o banco funciona.