在JAR中运行类时出错

时间:2013-10-10 16:41:59

标签: java ant jar cmd

我正在使用命令:     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(我是新手的另一件事),以便运行我们需要的类。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:2)

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

Windows上的

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

或在linux上:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您需要设置类路径以查看org.apache.tools.ant.Task。就像是 java -cp my.jar; /path/to/apache/tools.jar myClass