参考资料:http://leowzy.javaeye.com/blog/603941 如下图所示建立工程: 代码如下: DroolsTest.java package com.sample; import java.io.InputStreamReader; import java.io.Reader; import org.drools.RuleBase; import org.drools.RuleBaseFactory; import org.drools.WorkingMemory; import org.drools.compiler.PackageBuilder; import org.drools.rule.Package; public class DroolsTest { public static final void main(String[] args) { try { RuleBase ruleBase = readRule(); WorkingMemory workingMemory = ruleBase.newStatefulSession(); Message message = new Message(); message.setMessage("Hello World"); message.setStatus(Message.HELLO); workingMemory.insert(message); workingMemory.fireAllRules(); } catch (Throwable t) { t.printStackTrace(); } } private static RuleBase readRule() throws Exception { Reader source = new InputStreamReader(DroolsTest.class.getResourceAsStream("./Sample.drl")); PackageBuilder builder = new PackageBuilder(); builder.addPackageFromDrl(source); Package pkg = builder.getPackage(); RuleBase ruleBase = RuleBaseFactory.newRuleBase(); ruleBase.addPackage(pkg); return ruleBase; } public static class Message { public static final int HELLO = 0; public static final int GOODBYE = 1; public static final int GAME_OVER = 2; private String message; private int status; public String getMessage() { return this.message; } public void setMessage(String message) { this.message = message; } public int getStatus() { return this.status; } public void setStatus(int status) { this.status = status; } } } Sample.drl package com.sample import com.sample.DroolsTest.Message; rule "Hello World" when m : Message( status == Message.HELLO, message : message ) then System.out.println( message ); m.setMessage( "Goodbye cruel world" ); m.setStatus( Message.GOODBYE ); update( m ); end rule "GoodBye" no-loop true when m : Message( status == Message.GOODBYE, message : message ) then System.out.println( message ); m.setStatus(Message.GAME_OVER); m.setMessage("game over now!"); update( m ); end rule "game over" when m : Message( status == Message.GAME_OVER) then System.out.println( m.getMessage() ); end 其他资料: http://fu8000888.dns28.trtr.cn/article.asp?id=11 http://www.javaeye.com/topic/659752