平时都是使用Eclipse编写和运行java程序的。因为需要现在我在控制台中使用java命令来运行一个编译好的.class文件,可是java命令执行后返回给我的是找不到这个类,返回的错误信息如下:(注:Prog,即Prog.class,就在当前文件目录下)
======================================================================
D:\Eclipse SDK 3.3.2\program\Test\bin>java Prog
Exception in thread "main" java.lang.NoClassDefFoundError: Prog
Caused by: java.lang.ClassNotFoundException: Prog
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: Prog.  Program will exit.
======================================================================下面是Prog.java的内容:
======================================================================
public class Prog {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
======================================================================可是如果使用带-jar参数的java命令的话,就不会出现这样的问题。
不知道这是什么原因?望高人指点

解决方案 »

  1.   

    classpath要么就不要加,如果要加一定要加上   .;   因为如果添加了CLASSPATH而没有加上.(句点)JAVA虚拟机是不会找当前路径的?
      

  2.   

    啊~~~   居然是这个原因,怎么就没有想到呢??    真的太谢谢你了!!!     
    就因为这,我今晚白白耗费了2个多小时啊。
    可是我不明白我是怎么把classpath给改了的??
      

  3.   

    同意楼上的,楼主是不是修改了classpath,而没有加上.;即没有加上当前目录寻找.class