流口水/Java 8兼容性



我正在尝试使用Drools进行规则验证,但Java 8出现错误。根据现有的建议,我确实升级到 eclipse 编译器到 4.4,并查看了在我的 maven 依赖项中生成的相应 ecj-4.4.jar。但是,我仍然收到错误的类格式异常:

由: org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException.

我尝试使用不同版本的流口水,包括 6.4.0.Final、5.0.1 - 但问题仍然存在。

当我尝试使用无状态 kie 会话但不使用有状态 kie 会话时,我收到此错误。

有什么想法吗?

此致敬意萨达纳

如果您使用的是 drools 编译器依赖项,请在下面更改它pom.xml

<dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-compiler</artifactId>
    <version>${drools.version}</version>
    <exclusions>
           <exclusion>
               <groupId>org.eclipse.jdt.core.compiler</groupId>
               <artifactId>ecj</artifactId>
                </exclusion>
      </exclusions>
</dependency>

如果您使用的是流口水-弹簧依赖项:

<dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-spring</artifactId>
    <version>${drools-spring-version}</version>
     <exclusions>
           <exclusion>
               <groupId>org.eclipse.jdt.core.compiler</groupId>
               <artifactId>ecj</artifactId>
                </exclusion>
      </exclusions>
</dependency>

您面临的错误可能是因为有多个版本的ecj jar,而Java选择了错误的一个。

最新更新