NetBeans:JasperReport异常

时间:2009-10-16 06:56:44

标签: java netbeans jasper-reports

我正在开发一个需要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<String, Object> params = new HashMap<String, Object>();
        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 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

感谢。

3 个答案:

答案 0 :(得分:10)

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

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

我们可以在groovyJasperReports文件中找到 pom.xml 的依赖关系。对于JR 4.5.0版本,它是:

<dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>1.7.5</version>
        <scope>compile</scope>
        <optional>true</optional>
</dependency>

如果使用 maven ,我们可以将此依赖项添加到项目中:

<dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>1.7.5</version>
</dependency>

答案 1 :(得分:3)

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

答案 2 :(得分:0)

尝试:

JasperExportManager.exportReportToHtmlFile(jasperPrint, reportDest);

JasperExportManager.exportReportToHtmlFile()。我认为这就是你的意思。