2016-05-15 45 views
0

我在包含jasperreports的netbeans中創建項目,然後將項目隱藏到jar文件。我希望當我運行jar文件的項目jasperReports文件也工作正常.......但爲此,我用下面的代碼 異常來...代碼...將jesperReports添加到java中的Jar文件中以運行其他計算機

我試試下面的代碼

//代碼

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); 

//錯誤

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

你是什麼意思JAR文件?這個異常來自哪裏? – tobi6

+0

Jar文件的意思是我在NetBeans中創建了一個項目,包括jasperreports,然後我將項目轉換爲jar文件。我希望當我運行jar文件的項目jasperReports文件也工作正常.......但爲此,我使用的代碼是問題....異常來了...從代碼.. –

+0

我的意思是在哪個環境中出現異常。你在哪裏部署JAR文件?來自代碼的異常顯然沒有什麼大驚喜。 – tobi6

回答

0

唯一的例外可能出現因爲缺少jrxml文件。

你必須確保無論您部署JAR文件(沒有明確的理解),這相對路徑和文件是否存在(沒有前面的斜線!):

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

例如,如果部署在在您的家路徑的Linux服務器,你必須確保有一個文件中

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

在Windows上,你必須確保該文件是躺在你的DIRECTO下方ry結構,例如

C:\mypath\java -jar xyz.jar

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

相關問題