5

我对 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.

请协助。

4

5 回答 5

10

第一类文件应该在这个位置:

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

那么你应该在里面:

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

然后发出命令:

java chapter6.BoxDemo

在此处输入图像描述

于 2013-04-27T06:16:43.920 回答
3

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

于 2013-04-27T06:16:24.803 回答
1

尝试这个

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

运行时无需指定.class 文件。编译java 文件后会创建.class 文件。

例子

于 2013-04-27T06:11:38.487 回答
1

您从控制台运行程序的方式存在错误。

你在做

java BoxDemo.class

但你只需要做

java BoxDemo

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

如果你是从根文件夹访问它,那么你需要做

java chapter6.BoxDemo

于 2013-04-27T06:25:13.167 回答
0

当您调用 时BoxDemo.class,Java 会查找包中调用的类,该类classBoxDemo存在。从输出中可以看出java.lang.NoClassDefFoundError: BoxDemo/class,它正在搜索目录BoxDemo

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

于 2013-04-27T06:14:12.283 回答