簡體   English   中英

無法在Eclipse中運行“Hello World”Drools示例:運行時異常org.drools.RuntimeDroolsException:無法加載方言

[英]Unable to run “Hello World” Drools example in Eclipse: runtime exception org.drools.RuntimeDroolsException: Unable to load dialect

我剛剛在Eclipse(版本3.5.2)中安裝了Drools plug-in ,我正在嘗試運行插件附帶的“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;
}

您在類路徑中缺少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

這是一個常見問題,只需在你的類路徑中包含eclipse Jdt核心jar,它就會解決這個問題。 你可以從這里添加jar: http//www.java2s.com/Code/Jar/o/Downloadorgeclipsejdtcore371jar.htm

如果您使用的是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年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. 安裝“drools”。 轉到Eclipse Menu,然后單擊“Help”/“Install New Software”並添加以下URL。 Drools_UpdateSite - http://download.jboss.org/drools/release/6.0.0.Final/org.drools.updatesite/我安裝了每個選項。
  7. 重啟Eclipse。
  8. 轉到New-Project並添加一個新的“Drools項目”。

然后我能夠運行流氓“你好世界”。

我還補充說:

轉到Eclipse Menu,然后單擊“Help”/“Install New Software”並添加以下URL。

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

並安裝

"m2e - Maven Integration for Eclipse"
and "m2e - slf4j over logback logging (Optional)"

我遇到了同樣的問題。 如其他答案所述,如果手動創建運行時(如我的情況),那么您需要在類路徑中添加eclipse JDT核心jar。 這是jar的下載鏈接 - > http://www.java2s.com/Code/Jar/o/Downloadorgeclipsejdtcore371jar.htm將此添加到類路徑解決了我的問題。

http://www.java2s.com/Code/Jar/o/Downloadorgeclipsejdtcore371jar.htm在你的類路徑中瀏覽JDT核心jar。

在此輸入圖像描述

請確保它應該是一個jar而不是zip文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM