I&#39;ve read somewhere that the minimum jar set for execution with a precompiled .pkg is just<br>   drools-api-5.1.0.M2.jar<br>   drools-core-5.1.0.M2.jar<br><br>However, trying to run an application with just a .pkg file, this jar set results in the stack<br>
dump shown below, due to a missing &quot;org.mvel2...&quot; class. Adding lib/mvel2-2.0.16.jar to the<br>CLASSPATH fixes this, but (for reasons I don&#39;t care to elaborate here) be we can&#39;t have this<br>in our application. <br>
<br>Can this .jar be avoided? <br><br>Note: I&#39;m not using mvel, and the .drl file begins with &quot;package movie; dialect &quot;java&quot;.<br><br>-W<br><br><br>Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: org/mvel2/integration/impl/MapVariableResolverFactory<br>
    at java.lang.ClassLoader.defineClass1(Native Method)<br>    at java.lang.ClassLoader.defineClass(ClassLoader.java:632)<br>    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)<br>    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)<br>
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)<br>    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)<br>    at java.security.AccessController.doPrivileged(Native Method)<br>    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)<br>
    at java.lang.ClassLoader.loadClass(ClassLoader.java:319)<br>    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)<br>    at java.lang.ClassLoader.loadClass(ClassLoader.java:264)<br>    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)<br>
    at java.lang.Class.getDeclaredFields0(Native Method)<br>    at java.lang.Class.privateGetDeclaredFields(Class.java:2308)<br>    at java.lang.Class.getDeclaredField(Class.java:1897)<br>    at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1627)<br>
    at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:69)<br>    at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:442)<br>    at java.security.AccessController.doPrivileged(Native Method)<br>    at java.io.ObjectStreamClass.&lt;init&gt;(ObjectStreamClass.java:430)<br>
    at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:327)<br>    at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:564)<br>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1600)<br>
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1513)<br>    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1749)<br>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)<br>
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)<br>    at java.util.HashMap.readObject(HashMap.java:1047)<br>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br>
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>    at java.lang.reflect.Method.invoke(Method.java:616)<br>    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991)<br>
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865)<br>    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)<br>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)<br>
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)<br>    at org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:41)<br>    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1809)<br>
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1768)<br>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)<br>    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)<br>
    at org.drools.rule.Package.readExternal(Package.java:198)<br>    at org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:99)<br>    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1809)<br>
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1768)<br>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)<br>    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)<br>
    at java.util.ArrayList.readObject(ArrayList.java:696)<br>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
    at java.lang.reflect.Method.invoke(Method.java:616)<br>    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991)<br>    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865)<br>    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)<br>
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)<br>    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)<br>    at movie.Main.init(Main.java:40)<br>    at movie.Main.main(Main.java:89)<br>
Caused by: java.lang.ClassNotFoundException: org.mvel2.integration.impl.MapVariableResolverFactory<br>    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)<br>    at java.security.AccessController.doPrivileged(Native Method)<br>
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)<br>    at java.lang.ClassLoader.loadClass(ClassLoader.java:319)<br>    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)<br>    at java.lang.ClassLoader.loadClass(ClassLoader.java:264)<br>
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)<br>    ... 60 more<br><br><br>