简体   繁体   中英

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!

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

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.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM