Copilar

e aii…
to com uma dificuldade de achar um caminho para q dpois de copilar esse caminho ache a pasta dentro do jar copilado…
por exemplo…
fiz uma aplicaçao que tem a opçao de imprir to usando o Ireport p montar o relatorio…e para isso tenho q dizer o caminho onde estar o JASPER e onde o pdf sera gerado… fiz o caminho pela minha maquina local por ex. C:/Documents and Settings/coutinhorcs/Desktop/Viatura/Garagem/src/FonteRelatorio/ mais oou menos esse caminho…ele vai la dentro do meu projeto…vai na pasta das classes e entra no pacote onde ira criar o jasper e o pdf…mas eu queria dpois de copilado nao usar esse caminho para poder usar em qlquer outra maquina…sem que eu tenha q levar todo o meu projeto para a outra maquina… queria levar apenas a Lib com as bibliotecas né e o JAR…
alguem pode me ajudar cara??
to um tempao nisso e nao consigo achar um caminho que o jar dpois de copilado reconheca e crie dentro dele mesmo o pdf e abra…
abaixo segue o codigo onde gera o relatorio e esta com o caminho da minha maquina local…
abraço

A DUVIDA É…QUAL CAMINHO EU DEVO USAR NO LUGAR DO “C:/Documents and Settings/coutinhorcs/Desktop/Viatura/Garagem/src/FonteRelatorio/” PARA QUE DENTRO DO PROPRIO JASPER ELE ENCONTRAR O CAMINHO E ABRIR O PDF,pois em outra maquina…ela nao vai achar esse caminho pois é de outra maquina…

[code]public class BeanRelatorio {

public BeanRelatorio() {   
}   

public void gerar(String dataIni, String dataFim, String qtdeMissoes) throws JRException , SQLException,   
        ClassNotFoundException, BaflException {   

    String relatorio = "relatorioSaida";   
    ConverteDataHora converte = new ConverteDataHora();   
    //dataIni=converte.parseDataIso(dataIni);   
   // dataFim=converte.parseDataIso(dataFim);   
      //      Timestamp data = converte.stringToTimestampCompleto(new Date());   

    //String dataIni =  convData.parseDataIso(Inicial) ;   

// Pega a data final e soma um dia, para pegar que o pedriodo
// seja até o último minuto do dia.
//String dataFim = convData.somaDia(Final, 1);
//String dataFim = convData.parseDataIso(Final);

// Na variavel pathJasper ficara o caminho do diretório para
// os relatórios compilados (.jasper)

   String pathJasper = "C:/Documents and Settings/coutinhorcs/Desktop/Viatura/Garagem/src/FonteRelatorio/";   
     
  // InputStream pathJasper = getClass().getResourceAsStream("FonteRelatorio");   
  // String pathJasper2 = pathJasper+"";   

    /*getServletContext().getRealPath(  
            "/WEB-INF/classes/br/mil/bafl/sic/relatorios/")  
            + "/";  
    */   

// A variavel path armazena o caminho real para o contexto
// isso é util pois o seu web container pode estar instalado em lugares diferentes

   String path = "C:/Documents and Settings/coutinhorcs/Desktop/Viatura/Garagem/src/FonteRelatorio/";   
  // InputStream path = getClass().getResourceAsStream("/relatorio");   
   //String path2 = path+"";   

    //getServletContext().getRealPath("/");   

    try {   
    JasperReport jr =  (JasperReport) JRLoader.loadObject(pathJasper + relatorio + ".jasper");   
    HashMap parametros = new HashMap();   
    parametros.put("dataInicio",dataIni);   
    parametros.put("dataFinal", dataFim);   
    parametros.put("qtdeMissoes", qtdeMissoes);   
    //String contexto = getServletContext().getContextPath();   
    Connection con = SuperDAO.getConnection();   

   // InputStream is = getClass().getResourceAsStream("/FonteRelatio/relatorioSaida.jasper");   

// Aqui ele cria o relatório
JasperPrint impressao = JasperFillManager.fillReport(pathJasper
+ relatorio + “.jasper”, parametros, con);

       // JasperPrint impressao = JasperFillManager.fillReport(is, parametros, con);   

// Grava o relatório em disco em pdf
JasperExportManager.exportReportToPdfFile(impressao, path + relatorio + “.pdf”);
//JasperExportManager.exportReportToHtmlFile(impressao, path + “relatorio/relatorio.html”);

// Redireciona para o pdf gerado
// response.sendRedirect(“relatorio/” + relatorio + “.pdf”);//(pathJasper+“relatorio.pdf”);
//response.sendRedirect(“relatorio/relatorio.html”);//(pathJasper+“relatorio.pdf”);

        String pathRelatorio = path +  relatorio + ".pdf";   
        JasperViewer.viewReport(impressao,false);   
    } catch (Exception e) {   
        e.printStackTrace();   
    }   
}   
   /* public static void main(String[] args) {  

        String dtInicial = "22/01/2010";  
        String dtFinal = "26/01/2010";  

    try {  
        new BeanRelatorio().gerar(dtInicial, dtFinal);  

    } catch (Exception e) {  
        e.printStackTrace();  
    }  
}  
    */   

}
public class BeanRelatorio {

public BeanRelatorio() {
}

public void gerar(String dataIni, String dataFim, String qtdeMissoes) throws JRException , SQLException,
        ClassNotFoundException, BaflException {

	String relatorio = "relatorioSaida";
    ConverteDataHora converte = new ConverteDataHora();
    //dataIni=converte.parseDataIso(dataIni);
   // dataFim=converte.parseDataIso(dataFim);
      //      Timestamp data = converte.stringToTimestampCompleto(new Date());

    //String dataIni =  convData.parseDataIso(Inicial) ;

// Pega a data final e soma um dia, para pegar que o pedriodo
// seja até o último minuto do dia.
//String dataFim = convData.somaDia(Final, 1);
//String dataFim = convData.parseDataIso(Final);

// Na variavel pathJasper ficara o caminho do diretório para
// os relatórios compilados (.jasper)

   String pathJasper = "C:/Documents and Settings/coutinhorcs/Desktop/Viatura/Garagem/src/FonteRelatorio/";
  
  // InputStream pathJasper = getClass().getResourceAsStream("FonteRelatorio");
  // String pathJasper2 = pathJasper+"";

	/*getServletContext().getRealPath(
            "/WEB-INF/classes/br/mil/bafl/sic/relatorios/")
            + "/";
	*/

// A variavel path armazena o caminho real para o contexto
// isso é util pois o seu web container pode estar instalado em lugares diferentes

   String path = "C:/Documents and Settings/coutinhorcs/Desktop/Viatura/Garagem/src/FonteRelatorio/";
  // InputStream path = getClass().getResourceAsStream("/relatorio");
   //String path2 = path+"";

	//getServletContext().getRealPath("/");

    try {
    JasperReport jr =  (JasperReport) JRLoader.loadObject(pathJasper + relatorio + ".jasper");
    HashMap parametros = new HashMap();
    parametros.put("dataInicio",dataIni);
    parametros.put("dataFinal", dataFim);
    parametros.put("qtdeMissoes", qtdeMissoes);
    //String contexto = getServletContext().getContextPath();
    Connection con = SuperDAO.getConnection();

   // InputStream is = getClass().getResourceAsStream("/FonteRelatio/relatorioSaida.jasper");

// Aqui ele cria o relatório
JasperPrint impressao = JasperFillManager.fillReport(pathJasper
+ relatorio + “.jasper”, parametros, con);

       // JasperPrint impressao = JasperFillManager.fillReport(is, parametros, con);

// Grava o relatório em disco em pdf
JasperExportManager.exportReportToPdfFile(impressao, path + relatorio + “.pdf”);
//JasperExportManager.exportReportToHtmlFile(impressao, path + “relatorio/relatorio.html”);

// Redireciona para o pdf gerado
// response.sendRedirect(“relatorio/” + relatorio + “.pdf”);//(pathJasper+“relatorio.pdf”);
//response.sendRedirect(“relatorio/relatorio.html”);//(pathJasper+“relatorio.pdf”);

        String pathRelatorio = path +  relatorio + ".pdf";
        JasperViewer.viewReport(impressao,false);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
   /* public static void main(String[] args) {

        String dtInicial = "22/01/2010";
        String dtFinal = "26/01/2010";

	try {
		new BeanRelatorio().gerar(dtInicial, dtFinal);

	} catch (Exception e) {
		e.printStackTrace();
	}
}
    */

}
[/code]

Cara… ja expliquei pra um pessoal como fazer exatamente isso que vc precisa… da uma procurada nos meus posts… eu tenho q sair agora e num da pra explicar…

Bem, eu chamo meu relatório da forma abaixo.

 try {
            Connection con = new Conexao().conectar();
            HashMap parametros = new HashMap();
            JasperPrint jp = JasperFillManager.fillReport("./relatorios/clientes.jasper", parametros, con);
            JasperViewer jasperViewer = new JasperViewer(jp, false);
            jasperViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);
            jasperViewer.setTitle("Relatório de Clientes");
            jasperViewer.setVisible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }

Dentro do meu projeto eu crio uma pasta chamada relatorios onde coloco todos eles. Sendo assim se mudar de maquina só tenho que levar a pasta do projeto.