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 もクラスパスに追加してみてください

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 に答える