La mejor solución (para un mejor rendimiento también), llamará a un informe compilado.
se puede ver el siguiente ejemplo
import java.io.IOException;
import java.util.HashMap;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
public class PdfFromJasperFile {
public static void main(String[] args) throws JRException, IOException {
JasperPrint jasperPrint = JasperFillManager.fillReport("report.jasper", new HashMap<String, Object>(),
new JREmptyDataSource());
JasperExportManager.exportReportToPdfFile(jasperPrint, "sample.pdf");
}
}
Después de 6 años desde que se publicó [JRExport erParameter.OUTPUT_STREAM] (http://javadox.com/net.sf.jasperreports/jasperreports/5.1.0/net/sf/jasperreports/engine/JRExporterParameter.html#OUTPUT_STREAM) ha quedado obsoleto, he publicado una [respuesta] (http://stackoverflow.com/a/35698286/5292302) muestra cómo se logra esta respuesta en la versión actual. –