See http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html

Key line' referring to the -jar option:

"When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored."

You can specify the path to external jars in the manifest of the standalone jar.  

GreG

On Jun 23, 2010, at 9:44 AM, Wolfgang Laun <wolfgang.laun@gmail.com> wrote:

The application works fine in Eclipse.

In Eclipse, I created a jar file x.jar from the .class and a few .drl files, and copied x.jar to /tmp/x/

Now, in /tmp/x
   CP="droos/*:drools/lib/*"
   java -cp "$CP" -jar dpvt.jar par...
This fails on the first attempt to access any class from a drools jar file.

In /tmp/x, I unpack x.jar and call
   CP="droos/*:drools/lib/*:."
   java -cp "$CP" rss.aws.init.Main par...
AND THIS WORKS!

So, what is different when starting a Java program with java -jar as opposed
to java x.y.Main?

The stack dump is not very informative:

java.lang.NoClassDefFoundError: org/drools/KnowledgeBaseFactory
    at rss.aws.engine.impl.DroolsEngine.setup(DroolsEngine.java:30)
    at rss.aws.init.Core.init(Core.java:51)
    at rss.aws.init.Core.getInstance(Core.java:16)
    at rss.aws.init.Main.<init>(Main.java:35)
    at rss.aws.init.Main.main(Main.java:191)
Caused by: java.lang.ClassNotFoundException: org.drools.KnowledgeBaseFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
    ... 5 more

 Any ideas?
-W
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users