2016-05-15 6 views
0

Ich mache ein Projekt in Netbeans einschließlich jasperreports und dann verberge ich Projekt in JAR-Datei. Ich möchte, wenn ich die JAR-Datei des Projekts ausführen die JaspisReports-Datei auch gut funktionieren ....... aber dafür habe ich den folgenden Code verwendet die Ausnahme ist gekommen ... aus dem Code ...Fügen Sie jesperReports in die Jar-Datei in Java, um andere Computer zu starten

Ich versuche der Code folgenden

// Code

InputStream input = this.getClass().getResourceAsStream("Users/Kashif/Desktop/Muhammad Kashif/Documents/NetBeansProjects/Torch/Reports/report11.jrxml"); 
       JasperDesign jd = JRXmlLoader.load(input); 

Map map = new HashMap(); 
      map.put("Discount", para); 
      map.put("Customer", para1); 
      map.put("Total", para2); 

      JasperReport jasperReport = JasperCompileManager.compileReport(jd); 
      JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, con); 

      //view report to UI 
      JasperViewer.viewReport(jasperPrint, false); 

// Fehler

net.sf.jasperreports.engine.JRException: java.net.MalformedURLException 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:305) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:284) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:273) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:247) 
    at torch.UserGui.printBtnActionPerformed(UserGui.java:1269) 
..... 
..... 
..... 
Caused by: java.net.MalformedURLException 
    at java.net.URL.<init>(URL.java:619) 
    at java.net.URL.<init>(URL.java:482) 
    at java.net.URL.<init>(URL.java:431) 
    at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source) 
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) 
    at org.apache.commons.digester.Digester.parse(Digester.java:1892) 
    at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:297) 
    ... 42 more 
Caused by: java.lang.NullPointerException 
    at java.net.URL.<init>(URL.java:524) 
    ... 53 more 
+0

Welche JAR-Datei meinst du damit? Woher kommt diese Ausnahme? – tobi6

+0

Jar-Datei bedeutet, ich mache ein Projekt in Netbeans einschließlich Jasperreports und dann verberge ich Projekt in JAR-Datei. Ich möchte, wenn ich die JAR-Datei des Projekts ausführen die JaspisReports-Datei auch gut funktionieren ....... aber dafür habe ich den Code, der in Frage gestellt wird .... die Ausnahme ist gekommen ... aus dem Code .. –

+0

Ich meinte, in welcher Umgebung die Ausnahme auftaucht. Wo deployen Sie die JAR-Datei? Dass die Ausnahme vom Code kommt, ist offensichtlich keine große Überraschung. – tobi6

Antwort

0

die Ausnahme wegen einer fehlenden jrxml Datei kommen könnte.

Sie müssen sicherstellen, dass überall dort, wo Sie Ihre JAR-Datei (nicht klar verständlich) diesen relativen Pfad und Datei bereitstellen vorhanden ist (keinen vorhergehenden slash!):

Users/Kashif/Desktop/Muhammad Kashif/Documents/NetBeansProjects/Torch/Reports/report11.jrxml

Zum Beispiel, wenn Sie bereitstellen auf ein Linux-Server in Ihrem Home-Pfad, Sie dort machen müssen, dass eine Datei

/home/username/Users/Kashif/Desktop/Muhammad Kashif/Documents/NetBeansProjects/Torch/Reports/report11.jrxml

unter Windows in

ist, müssen Sie sicherstellen, dass die Datei unter Ihrem directo liegt ry Struktur, z.B.

C:\mypath\java -jar xyz.jar

C:\mypath\java\Users/Kashif/Desktop/Muhammad Kashif/Documents/NetBeansProjects/Torch/Reports/report11.jrxml