我创建了一个名为“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
并尝试重新编译但没有任何改变。
问题是什么??我该怎么做?
答案 0 :(得分:1)
编译代码后,最终会得到程序中每个类的.class文件。这些二进制文件是Java解释执行程序的字节码。 NoClassDefFoundError指示负责动态加载类的类加载器无法找到您尝试使用的类的.class文件。它可能表示您在执行代码时未设置classpath选项。此链接说明了在执行
时如何设置类路径答案 1 :(得分:1)
1)打开一个新shell并添加一个像这样的新简单程序。
2)使用javac Hello.java编译java代码
3)使用java Hello
来运行代码
它应该有效,如果你还有问题,请告诉我们。