NetBeans:JasperReportexception

我正在开发一个需要Jasper报告的项目,我使用下面提到的代码片段来查看NetBeans 6.1中的报告(该报告最初是使用iReport 3.6.0生成和编译的),我的要求是使用以下方式打印此报告:一个简单的Swing应用程序。

代码片段:

public class JasperCheck { public static void main(String[] args) { String reportSource = "E:/Projects/report.jrxml"; String reportDest = "E:/Projects/report.html"; Map params = new HashMap(); try { JasperReport jasperReport = JasperCompileManager.compileReport(reportSource); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource()); JasperExportManager.exportReportToHtmlFile(jasperPrint, reportDest); JasperViewer.viewReport(jasperPrint); } catch (JRException ex) { System.out.println(ex); } } } 

但是,当我运行它时,它给出了一个我无法弄清楚的exception。

 Exception: Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:157) at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:115) at net.sf.jasperreports.engine.JasperCompileManager.getCompiler(JasperCompileManager.java:511) at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:215) at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:148) at src.JasperCheck.main(JasperCheck.java:31) Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.control.CompilationFailedException at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 8 more Java Result: 1 

谢谢。

尝试:

 JasperExportManager.exportReportToHtmlFile(jasperPrint, reportDest); 

请参阅JasperExportManager.exportReportToHtmlFile() 。 我认为这是你的意思。

这意味着缺少groovy库依赖项。

我们可以在类路径中添加groovy-1.7.5.jar (它取决于JasperReports版本)来解决这个问题。

我们可以在JasperReportspom.xml文件中找到groovy的依赖项。 对于JR 4.5.0版本,它是:

  org.codehaus.groovy groovy-all 1.7.5 compile true  

在使用maven情况下,我们可以将此依赖项添加到项目中:

  org.codehaus.groovy groovy-all 1.7.5  

这是因为,在创建报表时,您已选择语言为Grrovy,但这在java程序中使用了jrxml。在jrxml文件中,