0

我正在使用命令:java -cp my.jar myClass

但我收到了这些错误。

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)

谈到这一切,我是个新手,但我试图避免使用 ANT(我是新手的另一件事)来运行我们需要的课程。任何帮助将不胜感激!

4

3 回答 3

2

尝试将 ant.jar 也添加到您的 claspath

在 Windows 上:

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

或在 Linux 上:

java -cp .:my.jar:pathofantjar/ant.jar myClass
于 2013-10-10T16:46:46.180 回答
0

通常,此错误意味着有问题的类在编译时存在,但现在无法在类路径或 JAR 中找到。问题是运行代码时使用的类路径与编译代码时使用的类路径不同。

您应该发布您的代码,因为错误表明您的代码依赖于 ant 库,并且您说您正试图避免这种情况。

于 2013-10-10T16:44:27.800 回答
0

您需要设置类路径才能看到 org.apache.tools.ant.Task。类似 java -cp my.jar; /path/to/apache/tools.jar myClass

于 2013-10-10T16:44:30.347 回答