在命令提示符下运行时ClassNotFoundException

时间:2013-04-27 06:10:19

标签: java

我是java的新手,并试图运行一个简单的计算量的代码。代码如下:

package chapter6;

class Box {

    double width;
    double height;
    double depth;
}

package chapter6;

    public class BoxDemo {

        public static void main(String[] args) {

            Box myBox = new Box();
            double vol;

            myBox.depth = 1;
            myBox.height = 2;
            myBox.width = 3;

            vol = myBox.depth * myBox.height * myBox.width ;        

            System.out.println("Volume: " + vol);
        }

    }

我可以从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.

请协助。

5 个答案:

答案 0 :(得分:6)

第一类文件应位于此位置:

C:\Prabhjot\Java\CompleteRefence\build\classes\chapter6\BoxDemo.class

然后你应该在里面:

C:\Prabhjot\Java\CompleteRefence\build\classes>

然后发出命令:

java chapter6.BoxDemo

enter image description here

答案 1 :(得分:3)

您已将课程设置为名为chapter6的程序包。这意味着java文件应位于项目的类根文件夹中名为chapter6的文件夹中。当你运行它时,你应该在根文件夹中并使用命令java chapter6.BoxDemo

答案 2 :(得分:1)

试试这个

C:\Prabhjot\Java\CompleteRefence\build\classes>java chapter6.BoxDemo (RUN)

运行时无需为文件指定.class消息。编译java文件后,它将创建.class文件。

EXAMPLE

答案 3 :(得分:0)

当您调用BoxDemo.class时,Java会在class包中查找名为BoxDemo的类,该类不存在。正如您从输出java.lang.NoClassDefFoundError: BoxDemo/class中看到的那样,它正在搜索目录BoxDemo

相反,只需指定类名:BoxDemo;例如java BoxDemo

答案 4 :(得分:0)

从控制台运行程序的方式有误。

你在做什么

java BoxDemo.class

但你只需做

java BoxDemo

在运行程序时,您无需提及带名称的 .class

如果您从根文件夹访问它,则需要执行

java chapter6.BoxDemo