Classe java não encontra arquivo .jasper

Lista,

Criei um projeto no eclipse que contém essa estrutura:

webapps
–>meu_projeto
------>WEB-INF
---------->classes
-------------->teste
------------------>com
---------------------->br
-------------------------> arquivos .class

Então, em um desses arquivos .class (vide código abaixo) eu chamo um arquivo .jasper que o .class só consegue “enxergar” se esse arquivo .jasper estiver na pasta meu_projeto.

Minhas dúvidas:

Como eu faço para determinar outra pasta para eu colocar esse arquivo .jasper? Ou não tem jeito?

O arquivo .jasper gera um .pdf. Depois que o usuário printou o relatório a minha classe tem que cuidar de apagar esse pdf ou existe uma forma automática de fazê-lo?

Vc tem um exemplo de como visualizar esse pdf no acrobat ao invés de visualizá-lo com JasperViewer.viewReport(“RelatorioBibliotecaPessoal.jrprint”, false ); ?

Muito obrigado,

Marques

package br.com.teste;

import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.view.JasperViewer;

public class RelatorioBibliotecaPessoal {

	private static Connection getConnection() throws ClassNotFoundException,
			SQLException {
		String driver = "com.mysql.jdbc.Driver";
		String url = "jdbc:mysql://localhost:3306/bgma?zeroDateTimeBehavior=convertToNull";
		String user = "root";
		String password = "";
		
		Class.forName(driver);
		Connection con = DriverManager.getConnection(url, user, password);
		return con;
	}

	public void geraRelatorio() throws JRException, Exception {
		
		 		
		Connection con = getConnection();
		Statement stm = con.createStatement();
		String query = "select * from associado";
		ResultSet rs = stm.executeQuery(query);
		JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
		Map parameters = new HashMap();

JasperFillManager.fillReportToFile("RelatorioBibliotecaPessoal.jasper",	parameters, jrRS);
		
		JasperExportManager.exportReportToPdfFile("RelatorioBibliotecaPessoal.jrPrint");

		//JasperViewer.viewReport("RelatorioBibliotecaPessoal.pdf", false);
		JasperViewer.viewReport("RelatorioBibliotecaPessoal.jrprint", false ); 
		
	}

	public static void main(String[] args) throws JRException, Exception {
		new RelatorioBibliotecaPessoal().geraRelatorio();
	}

}

Já tentou colocar o caminho absoluto? :shock:

[]´s

Não bastaria fazer?

JasperFillManager.fillReportToFile("caminho/a/partir/da/raiz/RelatorioBibliotecaPessoal.jasper",	parameters, jrRS);

Ou gostaria que os .jasper estivessem fora do diretório da aplicação?

E quanto ao arquivo, basta chamar file.delete() após terminar o trabalho de impressão, não?