为什么我会收到编译错误“org / codehaus / groovy / control / CompilationFailedException”?

时间:2012-01-20 02:02:53

标签: java ant compilation jasper-reports

我正在尝试使用Ant脚本和Java编译我的JasperReports模板。我收到了这个错误:

jasper java.lang.NoClassDefFoundError:
org/codehaus/groovy/control/CompilationFailedException

模板中没有任何复杂的东西,但我仍然无法编译。

6 个答案:

答案 0 :(得分:147)

您必须将模板中的language值设置为Java。有两种方法可以做到这一点:

  1. 如果您使用 iReport,选择报告检查器中的根对象(与您的报告同名的那个)。然后在 Properties 窗口中,从 Languages 下拉列表中选择 Java

  2. 如果您正在编辑JRXML文件中的原始标记,请从文件中删除language="groovy"

  3. 然后尝试重新编译 - 你应该排序。 :)

答案 1 :(得分:8)

另一个解决方案是将groovy-all- {version} .jar从groovy二进制发行版复制到应用程序中。

答案 2 :(得分:3)

如果您使用的是TIBCOJaspersoftStudio:

  1. http://groovy-lang.org/download.html
  2. 下载最新的groovy 2.4。* jar
  3. 解压缩并获取此文件./groovy-2.4.10/embeddable/groovy-all-2.4.10.jar
  4. 将jar放入./TIBCOJaspersoftStudio-6.3.1.final/plugins
  5. 删除旧jar:./ TIBCOJaspersoftStudio-6.3.1.final/plugins/groovy-all_2.4.5.jar

答案 3 :(得分:1)

在JRXML中将语言更改为java(例如: - language =“java”)或将groovy * .jar添加到项目的类路径中。

答案 4 :(得分:0)

如果使用Maven,则必须在pom.xml中添加groovy依赖项。

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

在另一种情况下,必须将库groovy添加到lib文件夹(WEB-INF / lib)

答案 5 :(得分:0)

您在路径中缺少重要的库 groovy

情况1::如果您使用的是Maven,请在pom.xml中将此依赖项与兼容版本一起添加

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

案例2:第二种方法是在类路径中添加groovy jar的兼容版本

下载Groovy jar的网址: http://groovy-lang.org/download.html