java.lang.NoClassDefFoundError:和其他错误

时间:2014-02-27 09:48:21

标签: java

我创建了一个名为“cancelladir”的文件java,它位于目录名“cancelladir”中,当我在我的ubuntu shell中写道时,“javac cancelladir.java”它创建了一个cancelladir.class但是当我尝试执行时使用命令“java cancelladir”的文件java有一些错误:

Exception in thread "main" java.lang.NoClassDefFoundError: cancelladir (wrong name: cancelladir/cancelladir)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

我已经将类路径设置为export CLASSPATH=.:/home/lisa/graphhopper/graphhopperAndrea/web/src/main/webapp/cancelladir并尝试重新编译但没有任何改变。 问题是什么??我该怎么做?

2 个答案:

答案 0 :(得分:1)

编译代码后,最终会得到程序中每个类的.class文件。这些二进制文件是Java解释执行程序的字节码。 NoClassDefFoundError指示负责动态加载类的类加载器无法找到您尝试使用的类的.class文件。它可能表示您在执行代码时未设置classpath选项。此链接说明了在执行

时如何设置类路径

答案 1 :(得分:1)

1)打开一个新shell并添加一个像这样的新简单程序。
2)使用javac Hello.java编译java代码 3)使用java Hello
来运行代码 它应该有效,如果你还有问题,请告诉我们。

enter image description here