user2867999
user2867999

Reputation: 3

Error when running a class inside of a JAR

I am using the command: java -cp my.jar myClass

but I am getting these errors.

Exception in thread "main" java.lang.NoClassDefFoundError: org.apache.tools.ant.Task
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:295)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:154)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:711)
        at java.net.URLClassLoader.access$400(URLClassLoader.java:92)
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1159)
        at java.security.AccessController.doPrivileged(AccessController.java:314)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:594)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:743)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:711)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:690)
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:295)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:154)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:711)
        at java.net.URLClassLoader.access$400(URLClassLoader.java:92)
        at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1159)
        at java.security.AccessController.doPrivileged(AccessController.java:314)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:594)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:743)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:711)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:690)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:494)
    Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.Task
        at java.net.URLClassLoader.findClass(URLClassLoader.java:599)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:743)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:711)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:690)

I am a novice when it comes to all this, but am trying to avoid using ANT (another thing I am a novice at) in order to run the class we need. Any help would be greatly appreciated!

Upvotes: 0

Views: 303

Answers (3)

Juned Ahsan
Juned Ahsan

Reputation: 68715

Try to add the ant.jar also to your claspath

on Windows:

java -cp .;my.jar;pathofantjar/ant.jar myClass

or on linux:

java -cp .:my.jar:pathofantjar/ant.jar myClass

Upvotes: 2

ctwomey
ctwomey

Reputation: 479

You need to set your class path to see org.apache.tools.ant.Task. Something like java -cp my.jar; /path/to/apache/tools.jar myClass

Upvotes: 0

Paul Sanwald
Paul Sanwald

Reputation: 11329

In general, this error means that the class in question was present at compile time, but cannot now be found on the classpath or in the JAR. The problem is that the classpath you are using when you are running your code is different from the classpath that you used when compiling your code.

You should post your code, as the error indicates your code depends on an ant library, and you say you're trying to avoid that.

Upvotes: 0

Related Questions