我是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.
请协助。
答案 0 :(得分:6)
第一类文件应位于此位置:
C:\Prabhjot\Java\CompleteRefence\build\classes\chapter6\BoxDemo.class
然后你应该在里面:
C:\Prabhjot\Java\CompleteRefence\build\classes>
然后发出命令:
java chapter6.BoxDemo
答案 1 :(得分:3)
您已将课程设置为名为chapter6
的程序包。这意味着java文件应位于项目的类根文件夹中名为chapter6
的文件夹中。当你运行它时,你应该在根文件夹中并使用命令java chapter6.BoxDemo
答案 2 :(得分:1)
试试这个
C:\Prabhjot\Java\CompleteRefence\build\classes>java chapter6.BoxDemo (RUN)
运行时无需为文件指定.class消息。编译java文件后,它将创建.class文件。
答案 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