Caminhooo arquivo

1 resposta
andrejusti

pessoal gostaria de saber como pego a referencia de um arquivo que está dentro de outro pacote...
String arquivoJasper = "br.com/jexperts/report/unimed.jasper";
algo assim...
quero pegar o caminho do arquivo compilado do jasper que está em outro pacote...
Obrigadoo

package br.com.jexperts.report;

import java.util.HashMap;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;

public class testeReport {
	public static void main(String[] args) throws JRException {
		JasperPrint rel = null;
		try {
			HashMap map = new HashMap();
			map.put("andre", "andre parametro");
			map.put("parameter1", "andre parametro2");
			String arquivoJasper = "br.com/jexperts/report/unimed.jasper";
			JasperReport relatorio = (JasperReport) JRLoader.loadObject("../unimed.jasper");
			rel = JasperFillManager.fillReport(relatorio, map);
			JasperViewer.viewReport(rel);
			JasperExportManager.exportReportToPdfFile(rel, "C:\workspace\exemplossss.PDF");
		}
		catch (JRException e) {
			e.printStackTrace();
		}

	}
}

1 Resposta

R

O arquivo que você precisa carregar está no Classpath do Java ou no sistema de arquivos local? Se estiver no sistema de arquivos local, crie um FileInputStream em cima do arquivo e passe-o a JRLoader.loadObject(). Se estiver no Classpath, o arquivo pode ser carregado usando o método abaixo:

public static InputStream getResourceAsStream(String resourceName)
      throws IOException {
    String stripped = resourceName.startsWith("/") ?
      resourceName.substring(1) : resourceName;

    InputStream stream = null;
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

    if (classLoader != null) {
      stream = classLoader.getResourceAsStream(stripped);
    }

    if (stream == null) {
      stream = IOUtils.class.getResourceAsStream(resourceName);
    }

    if (stream == null) {
      stream = IOUtils.class.getClassLoader().getResourceAsStream(stripped);
    }

    if (stream == null) {
      throw new IOException(resourceName + " not found");
    }

    return stream;
  }

Você provavelmente terá de chamar o método com a string abaixo:

String arquivoJasper = "br/com/jexperts/report/unimed.jasper"
Criado 19 de janeiro de 2010
Ultima resposta 19 de jan. de 2010
Respostas 1
Participantes 2