Java 在命令提示符下运行时ClassNotFoundException
我对java非常陌生,并尝试运行一个简单的计算体积的代码。代码如下:Java 在命令提示符下运行时ClassNotFoundException,java,Java,我对java非常陌生,并尝试运行一个简单的计算体积的代码。代码如下: package chapter6; class Box { double width; double height; double depth; } 我可以从eclipse运行代码,但是当我尝试在命令提示符下运行代码时,我得到了错误: C:\Prabhjot\Java\CompleteRefence\build\classes>java BoxDemo.class Exception i
package chapter6;
class Box {
double width;
double height;
double depth;
}
我可以从eclipse运行代码,但是当我尝试在命令提示符下运行代码时,我得到了错误:
C:\Prabhjot\Java\CompleteRefence\build\classes>java BoxDemo.class
Exception in thread "main" java.lang.NoClassDefFoundError: BoxDemo/class
Caused by: java.lang.ClassNotFoundException: BoxDemo.class
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: BoxDemo.class. Program will exit.
请帮忙。试试这个
C:\Prabhjot\Java\CompleteRefence\build\classes>java chapter6.BoxDemo (RUN)
运行时无需为文件指定.class。编译java文件后,它将创建.class文件
当您调用
BoxDemo.class
时,Java会在BoxDemo
包中查找名为class
的类,该类不存在。从输出java.lang.NoClassDefFoundError:BoxDemo/class
中可以看到,它正在搜索目录BoxDemo
相反,只需指定类名:
BoxDemo
;e、 g.javaboxdemo
您已经将您的类放在一个名为第6章的包中。这意味着java文件应该位于项目的类根文件夹中名为chapter6
的文件夹中。当您运行它时,您应该在根文件夹中并使用命令java chapter6.BoxDemo
第一类文件应该位于以下位置:
C:\Prabhjot\Java\CompleteRefence\build\classes\chapter6\BoxDemo.class
那么你应该在里面:
C:\Prabhjot\Java\CompleteRefence\build\classes>
然后发出命令:
java chapter6.BoxDemo
从控制台运行程序的方式存在错误
你在干什么
javaboxdemo.class
但你只需要这样做
javaboxdemo
运行程序时,您不需要在.class中加上名称
如果您是从根文件夹访问它,则需要执行以下操作
java chapter6.BoxDemo
我不知道为什么会被否决,因为这提供了与上面完全相同的答案,只是提供了更多信息。我没有否决,但您的示例不起作用,因为包名不正确。上面的问题是我的代码在包中,请参阅:包第6章;在本例中不需要-d
,并且您的包名是“错误的”,但除此之外,它现在是正确的。太棒了!但是我不能撤销投票,因为我的评论和你的编辑都有出入……谢谢,现在我明白了。我在使用C:\Prabhjot\Java\CompleteRefence\build\classes\chapter6中的命令时犯了一个错误,正如您所提到的那样。谢谢
java chapter6.BoxDemo