# JasperReport Problem in Runtime



## Bigbob (29. Okt 2011)

Hallo zusammen, 

ich habe einen meinem Programm einen kleinen Report mit JasperReport hinzugefügt, funktioniert auch soweit gut, wenn ich direkt aus eclipse starte. Wenn ich jedoch ein Runnable Jar File erstelle, funktioniert dies leider nicht, es wird kein PDF erzeugt.


```
import java.util.HashMap;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRXmlDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
   
   
   
  public class print {
  
	  public static void test() throws JRException {
  
                  String reportFileName = "bin/print/TestPage1.jasper";
                  String outFileName = "TestPage1.pdf";
                  String xmlFileName = "file.xml";
                  String recordPath = "/Test_output";
                  
                  JRXmlDataSource jrxmlds = new JRXmlDataSource(xmlFileName,recordPath);
                  
          @SuppressWarnings("rawtypes")
		HashMap hm = new HashMap();
          
          try
          {
              JasperPrint print = JasperFillManager.fillReport(
                          reportFileName, 
                          hm, 
                          jrxmlds);
              
              JRExporter exporter = new JRPdfExporter();
              
              exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,outFileName);
                      exporter.setParameter(JRExporterParameter.JASPER_PRINT,print);
                      
                      exporter.exportReport();
                      System.out.println("Created file: " + outFileName);             
          }
          catch (JRException e)
          {
              e.printStackTrace();
          }
          catch (Exception e)
          {
              e.printStackTrace();
          }
  
      }
```

Vielleich weiß ja jemand von Euch was an meinem Code falsch ist, komm da leider nicht weiter.
Vielen Dank im Voraus, 

Viele Grüße
Jochen


----------



## turtle (29. Okt 2011)

Was passiert denn, wenn Du das Programm mit "java -jar" von der Kommandozeile startest?

PS: Ich vermute aber, dass es Probleme mit den Pfaden gibt, weil die Dateien (*.jasper) nicht aus der JAR-Datei geladen werden können. Wenn dem so ist, lade die Dateien über den Classpath.


----------



## Bigbob (29. Okt 2011)

Hallo Turtle,

Vielen Dank, das war!!! PDF Generierung klappt jetzt.:toll:


Habe jetz anstatt: 

```
String reportFileName = "bin/print/ConcretPage1.jasper";
```
über den Classloader gelanden:

```
InputStream reportFileName = ClassLoader.getSystemResourceAsStream("print/ConcretPage1.jasper");
```

Einziges Problem, was ich noch habe ist, dass das im JasperReport enthalten Bild nicht gefunden wird.
Weißt Du wie ich Jasper sagen kann, dass es für den Report im Classpath suchen soll?

Nochmals vielen Dank...

Viele Grüße
Jochen


----------

