我剛剛在Eclipse(版本3.5.2)中安裝了Drools plug-in
,我嘗試運行「Hello世界「插件附帶的例子。無法在Eclipse中運行「Hello World」Drools示例:運行時異常org.drools.RuntimeDroolsException:無法加載方言
當我運行代碼,我得到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;
}
克里斯 - 感謝您給我們的信息!我手動添加了jar,現在一切都完美了! – user396377 2010-07-21 18:24:28
我在我的類路徑中有JDT核心 - 它在插件目錄中,並且是一個小版本的區別(我在org.eclipse.jdt.core_3.6.0.v_A58.jar中實現了Eclipse的插件目錄 - 實際上org.eclipse.jdt.core_3.6.1.v_A68_R36x.jar現在也存在,因爲我一直在嘗試更新之前的jar,但這會破壞Eclipse)。儘管如此,我仍然得到相同的錯誤: 無法加載方言'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java'....等 – 2011-10-28 04:54:13
我解決了我的問題:它基本上是JDT有問題,我需要從Helios下的Install New Software菜單選項更新JBoss Drools Core。另外,還可以使用JBoss的URL來獲得特定的Eclipse版本 - 這可以在http://www.jboss.org/tools/download.html找到。我的問題是,我試圖直接安裝罐子,因爲我找不到上面提到的網址,但我可以找到我認爲正確的罐子。哦,好吧....爲您的版本找到合適的包裝。 – 2011-10-28 05:41:44