初学java,书上的一个简单例程,编译通过了,但运行报错,程序如下
public class FirstSample
{
   public static void main(String[] args)
   {
      System.out.println("We will not use 'Hello, World!'");
   }
}将此程序用记事本录入保存为FirstSample.java,
用c:\>javac FirstSample.java编译为字节码文件FirstSample.class,成功!
然后用c:\>java FirstSample运行,报如下错误Exception in thread "main" java.lang.NoClassDefFoundError: D:\MyDevTools\corejav
a8\v1ch03\FirstSample\FirstSample
Caused by: java.lang.ClassNotFoundException: D:\MyDevTools\corejava8\v1ch03\Firs
tSample\FirstSample
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: D:\MyDevTools\corejava8\v1ch03\FirstSample\FirstS
ample.  Program will exit.

解决方案 »

  1.   

    你先cd到D:\MyDevTools\corejava8\v1ch03\FirstSample\这个目录
      

  2.   

    你把编译好的了class文件放在哪了?是在D:\MyDevTools\corejav
    a8\v1ch03\FirstSample\这里面吗?
      

  3.   

    要么cd到 D:\MyDevTools\corejav
    a8\v1ch03\FirstSample\要么把 FirstSample.class  放在C\:
      

  4.   

    谢谢楼上两位to aotian16
    cd到那个目录试过了,还是不行to zhu6100441
    class文件放在D:\MyDevTools\corejav
    a8\v1ch03\FirstSample\ 这个目录下了
      

  5.   

    你的代码是不是还有一段
    package D:\MyDevTools\corejava8\v1ch03\FirstSample
    没贴?我真的好奇怪,c:\>javac FirstSample.java 怎么会把类放到d:盘去了?
      

  6.   

    哈哈,把class文件放C盘可以了,刚才在D盘不行可能是因为NTFS格式的原因to clariones
    都贴出来了,没有package那一段
    但是还有一个不解,
    我的源代码放在D盘的一个文件夹中,
    用javac d:\...\FirstSample.java,可以编译成功,编译出的class文件就默认放在了该文件夹中
    为什么我再用java d:\...\FirstSample 去执行编译好的字节码文件就不行了呢?为什么一定要把.class文件放在C盘呢?
      

  7.   


    放到C盘可以了,
    但是貌似cd不到D:\MyDevTools\corejav
    a8\v1ch03\FirstSample\  是不是NTFS分区的原因呢???另外还有一个不解,
    我的源代码放在D盘的一个文件夹中,
    用javac d:\...\FirstSample.java,可以编译成功,编译出的class文件就默认放在了该文件夹中
    为什么我再用java d:\...\FirstSample 去执行编译好的字节码文件就不行了呢?为什么一定要把.class文件放在C盘呢?
      

  8.   

    先 
    D:回车

    cd D:\MyDevTools\corejava8\v1ch03\FirstSample\回车
      

  9.   

    哈哈,果然,太久没在这个cmd界面下做过什么事情了,都忘了,谢谢!
      

  10.   

    第二个问题: 命令行应该是
    java -cp "d:\...\" FirstSample
      

  11.   

    下面好像也可以
    cd /d D:\MyDevTools\corejava8\v1ch03\FirstSample\
      

  12.   


    是这样写么?
    java -cp "D:\MyDevTools\corejava8\v1ch03\FirstSample\" FirstSample好像不行,回车后显示了一个java命令的参数列表。。