我正在尝试使用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选择了错误的一个。