我有这个jButton:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
printPO();
}
这是做什么的>
private void printPO() {
try {
HashMap param = new HashMap();
param.put("KDPO", txtKDPO.getText());
String report = "src/simapt/iReports/print_PO.jrxml";
JasperReport jr = JasperCompileManager.compileReport(report);
JasperPrint jp = JasperFillManager.fillReport(jr, param, con);
JasperViewer.viewReport(jp);
}
catch (Exception X) {
JOptionPane.showMessageDialog(rootPane, X);
}
}
我已经安装了jasper文件,已经安装了所有jasper插件和库。
但是当我按下按钮时,出现以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ReferenceMap
at net.sf.jasperreports.engine.util.JRSingletonCache.<init>(JRSingletonCache.java:53)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.<clinit>(JRXmlDigesterFactory.java:197)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:262)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:218)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:193)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:184)
at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:285)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:572)
at simapt.Transaction.FrmPurchaseOrder.printPO(FrmPurchaseOrder.java:1197)
at simapt.Transaction.FrmPurchaseOrder.jButton1ActionPerformed(FrmPurchaseOrder.java:1828)
at simapt.Transaction.FrmPurchaseOrder.access$3600(FrmPurchaseOrder.java:46)
at simapt.Transaction.FrmPurchaseOrder$24.actionPerformed(FrmPurchaseOrder.java:950)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.map.ReferenceMap
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 48 more
我尝试了其他几个示例来打印文件或在Jasperviewer中预览文件,但是没有运气,我遇到了类似的错误。
my jasper libraries and version numbers
and this is the jasper plugin that I used within my netbeans 8.2
these are the jasper files both on from inside the project and in the folder inside src
答案 0 :(得分:0)
就像@skandigraun所建议的那样,我得到了一些旧的库,这些库缺少运行报告所需的某些类。
解决方案是更新这些jar:
Apache通用集合v2.1至3.0.1 Apache Groovy v1.0到2.1
现在一切正常。