Java 在命令提示符下运行时ClassNotFoundException

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

我对java非常陌生,并尝试运行一个简单的计算体积的代码。代码如下:

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