Drools 5.4.0.Final 无法在 Java 8 上 运行

Drools 5.4.0.Final Cannot run on Java 8

Caused by: java.lang.RuntimeException: The Eclipse JDT Core jar is not in the classpath

当我尝试构建 class 时,我 运行 陷入了上述错误。我正在使用 Drools 5.4.0.Final 并已手动将 ecj-4.5.1.jar 添加到我的构建路径,但它仍然显示:

JDT core not in class path.

我正在使用 Eclipse MarsJdk 1.8drools 5.4.0.Final

谁能提出解决方案?

编辑:(已添加 StackTrace)

 [echo] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'droolsProcessingFactory' defined in class path resource [com/opr/amt/atm/testConfig.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.att.lpp.fw.drools.factory.DroolsProcessingFactory]: Constructor threw exception; nested exception is org.drools.RuntimeDroolsException: Unable to load dialect 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java:org.drools.rule.builder.dialect.java.JavaDialectConfiguration'
 [echo]     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1105)
 [echo]     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1050)
 [echo]     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
 [echo]     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
 [echo]     at org.springframework.beans.factory.support.AbstractBeanFactory.getObject(AbstractBeanFactory.java:305)
 [echo]     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
 [echo]     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)
 [echo]     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
 [echo]     at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
 [echo] Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.drools.factory.DroolsProcessingFactory]: Constructor threw exception; nested exception is org.drools.RuntimeDroolsException: Unable to load dialect 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java:org.drools.rule.builder.dialect.java.JavaDialectConfiguration'
 [echo]     at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:163)
 [echo]     at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
 [echo]     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1098)
 [echo] Caused by: org.drools.RuntimeDroolsException: Unable to load dialect 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java:org.drools.rule.builder.dialect.java.JavaDialectConfiguration'
 [echo]     at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:313)
 [echo]     at org.drools.compiler.PackageBuilderConfiguration.buildDialectConfigurationMap(PackageBuilderConfiguration.java:298)
 [echo]     at org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:187)
 [echo]     at org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:165)
 [echo]     at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:301)
 [echo]     at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:229)
 [echo]     at org.drools.builder.impl.KnowledgeBuilderFactoryServiceImpl.newKnowledgeBuilder(KnowledgeBuilderFactoryServiceImpl.java:34)
 [echo]     at org.drools.builder.KnowledgeBuilderFactory.newKnowledgeBuilder(KnowledgeBuilderFactory.java:46)
 [echo]     at com.drools.factory.DroolsProcessingFactory.<init>(DroolsProcessingFactory.java:21)
 [echo]     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
 [echo]     at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
 [echo] Caused by: java.lang.RuntimeException: The Eclipse JDT Core jar is not in the classpath

添加ecj-4.5后问题得到解决1.jar。问题是 ecj jar 必须与项目位于相同的 class 路径下。如果 jar 的 class 路径不同,则在库文件夹本身下添加 ecj jar 似乎不起作用。