7

我刚刚Drools plug-in在 Eclipse(版本 3.5.2)中安装了,我正在尝试运行插件附带的“Hello World”示例。

当我运行代码时,我得到runtime error以下堆栈跟踪:

org.drools.RuntimeDroolsException: Unable to load dialect 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java:org.drools.rule.builder.dialect.java.JavaDialectConfiguration'
 at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:274)
 at org.drools.compiler.PackageBuilderConfiguration.buildDialectConfigurationMap(PackageBuilderConfiguration.java:259)
 at org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:176)
 at org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:153)
 at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:242)
 at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:142)
 at org.drools.builder.impl.KnowledgeBuilderProviderImpl.newKnowledgeBuilder(KnowledgeBuilderProviderImpl.java:29)
 at org.drools.builder.KnowledgeBuilderFactory.newKnowledgeBuilder(KnowledgeBuilderFactory.java:29)
 at com.sample.DroolsTest.readKnowledgeBase(DroolsTest.java:39)
 at com.sample.DroolsTest.main(DroolsTest.java:23)
Caused by: java.lang.RuntimeException: **The Eclipse JDT Core jar is not in the classpath**
 at org.drools.rule.builder.dialect.java.JavaDialectConfiguration.setCompiler(JavaDialectConfiguration.java:94)
 at org.drools.rule.builder.dialect.java.JavaDialectConfiguration.init(JavaDialectConfiguration.java:55)
 at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:270)
 ... 9 more

以下是一些相关的Java代码:

public static final void main(String[] args) {
    try {
        // load up the knowledge base
        KnowledgeBase kbase = readKnowledgeBase();
    }
}

private static KnowledgeBase readKnowledgeBase() throws Exception {
    KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
    kbuilder.add(ResourceFactory.newClassPathResource("Sample.drl"), ResourceType.DRL);
    KnowledgeBuilderErrors errors = kbuilder.getErrors();
    if (errors.size() > 0) {
        for (KnowledgeBuilderError error : errors) {
            System.err.println(error);
        }
        throw new IllegalArgumentException("Could not parse knowledge.");
    }
    KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
    kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
    return kbase;
}
4

6 回答 6

7

您在类路径中缺少 eclipse JDT 核心 jar。如果您没有使用 Drools 类路径容器,或者您手动创建了自己的运行时,请确保该 jar 是您的类路径或运行时目录的一部分。如果您使用 Drools 类路径容器并生成了默认运行时,并且 JDT 核心 jar 不存在,请确保使用支持 Eclipse 3.5.2 的最新版本的插件。当然,您也可以手动添加 JDT 核心 jar 并重新创建运行时。

有关运行时的更多信息,请访问http://download.jboss.org/drools/release/5.1.1.34858.FINAL/drools-5.1.1-docs.zip并打开drools-5.1.1-docs.zip\drools-flow\html\ch.Drools_Eclipse_IDE_Features.html

于 2010-07-21T08:51:24.923 回答
2

如果您使用的是 JDK 1.7 或更高版本,您将在创建 JVM 之前设置一个参数,因为在 JNI4NET Sample 上使用的 Drools 是 5.1 版本,它不适用于 JDK 1.7 或更高版本。

在创建 JVM 之前尝试使用这一行:

var bridgeSetup = new BridgeSetup();
// ... 
bridgeSetup.AddJVMOption("-Ddrools.dialect.java.compiler.lnglevel", "1.6");
// ...
Bridge.CreateJVM(bridgeSetup);
于 2014-03-09T01:02:24.390 回答
2

这是一个常见问题,只需在您的类路径中包含 eclipse Jdt 核心 jar 即可解决此问题。您可以从这里添加 jar: http ://www.java2s.com/Code/Jar/o/Downloadorgeclipsejdtcore371jar.htm

于 2016-11-30T12:33:35.303 回答
1

所以我终于重新开始了。

我做了以下(2014 年 4 月)

  1. 从 Eclipse Kepler 的全新安装开始
  2. 转到 Eclipse Marketplace 并搜索“JBoss Developer Studio (Kepler)”,然后安装:“Red Hat JBoss Developer Studio (Kepler) 7.1.1.GA”(您的版本可能会有所不同)
  3. 重启 Eclipse
  4. 转到 Eclipse Marketplace 并搜索“JBoss Developer Studio (Kepler)”,然后安装:“JBoss Tools (Kepler) 4.1.2.Final”(您的版本可能会有所不同)
  5. 重新启动 Eclipse。
  6. 安装“流口水”。转到 Eclipse 菜单,然后转到“帮助”/“安装新软件”并添加以下 URL。Drools_UpdateSite - http://download.jboss.org/drools/release/6.0.0.Final/org.drools.updatesite/ 我安装了每个选项。
  7. 重新启动 Eclipse。
  8. 转到 New-Project 并添加一个新的“Drools 项目”。

然后我就可以运行流口水“hello world”了。

我还补充说:

转到 Eclipse 菜单,然后转到“帮助”/“安装新软件”并添加以下 URL。

http://download.eclipse.org/technology/m2e/releases 

并安装

"m2e - Maven Integration for Eclipse"
and "m2e - slf4j over logback logging (Optional)"
于 2014-04-22T18:30:01.990 回答
1

我遇到了同样的问题。如其他答案所述,如果手动创建运行时(如我的情况),那么您需要在类路径中添加 Eclipse JDT 核心 jar。这是jar的下载链接-> http://www.java2s.com/Code/Jar/o/Downloadorgeclipsejdtcore371jar.htm 将此添加到类路径解决了我的问题。

于 2015-07-07T09:23:30.693 回答
0

http://www.java2s.com/Code/Jar/o/Downloadorgeclipsejdtcore371jar.htm Eclipse JDT 核心 jar 在您的类路径中。

在此处输入图像描述

请确保它应该是 jar 而不是 zip 文件。

于 2018-11-06T11:50:06.540 回答