好象:import c05.dessert.*;是不要的。

解决方案 »

  1.   

    还有就是你使用了package后,class存放的目录结构正确吗?
      

  2.   

    Cookie.class要放到c05\dessert目录下才可以吧
      

  3.   

    这个去掉看看
    import c05.dessert.*;
      

  4.   

    你要把这两个class放在目录结构如:
    c05\dessert\,而且你的classpath要设置到c05的上级目录。
      

  5.   

    谢谢大家,你们说得我都做了呀,两个class都在目录c05\dessert下,而且我在classpath中已经设到c05目录上一级了.去掉import c05.dessert.*显然不行的。
      

  6.   

    去掉import c05.dessert.*,编译能通过,但不能执行!!请各位指教!
      

  7.   

    import c05.dessert.*;
    你的Cookie编译成class文件了吗??
      

  8.   

    import c05.dessert.*;加不加都无所谓的
      

  9.   

    你的java文件的路径在哪都没有关系
    编译器会在编译的时候在你的java文件路径下生成package表示的路径
    如你的 java文件放在..\java目录下,你的文件里有:package mypackage.myjava;
    编译后会有一个这样的目录..\java\mypackage\myjava\
    class文件存放在此
    如果运行的话需要进入该路径或者加入运行参数
      

  10.   

    去掉import c05.dessert.*,编译能通过,但不能执行!!请各位指教!
    java c05.dessert.Cookie
    ok!!!!!!!!!!!!!
      

  11.   

    java c05.dessert.Cookie
    当然不能执行,因为没有main函数
      

  12.   

    我的计算机环境下可以编译运行成功。
    环境:jdk1.4+w2k
    我怀疑你的Classpath设置有问题,你先明确一下classpath的设置是否正确。
    以下代码肯定没有问题,能够正常编译运行。
    //Cookie.java
    package c05.dessert;public class Cookie {
      public Cookie() { 
       System.out.println("Cookie constructor"); 
      }
     protected  void bite() { System.out.println("bite"); }
    } ///:~
    //Dinner.java
    package c05.dessert;
    import c05.dessert.*;public class Dinner {
      public Dinner() {
       System.out.println("Dinner constructor");
      }
    public static void main(String[] args) {
      Dinner y = new Dinner(); 
      Cookie x = new Cookie();
        x.bite(); 
      }
    } ///:~
      

  13.   

    或许楼上说的有道理,执行java Dinner后的错误信息为:
    Exception in thread "main" java.lang.NoClassDefFoundError: Dinner (wrong name: c
    05/dessert/Dinner)
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
    3)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
      

  14.   

    执行命令如下:
    D:\code\qiujava\c05\dessert>java Dinner;
    Classpath路径设置如下:
    .;c:\j2sdk\lib\dt.jar;c:\j2sdk\lib\tools.jar;D:\code\qiujava;
    我觉得应该没有什么问题了吧!
      

  15.   

    你到d:\code\qiujava下编译d:\code\qiujava>javac c05\dessert\cookei.java
    d:\code\qiujava>javac c05\dessert\dinner.java然后运行:
    d:\code\qiujava>java c05\dessert\dinner
      

  16.   

    bbsand,招你说的做了,还是出现同样的错误!!!,高手,help,help!!
      

  17.   

    回复人: lucy211(蓝鸟) ( ) 信誉:100  2003-3-3 16:28:57  得分:0 
     
     
    回复人: lucy211(蓝鸟) ( ) 信誉:100  2003-3-3 16:28:57  得分:0 
      
    执行命令如下:
    D:\code\qiujava\c05\dessert>java Dinner;
    Classpath路径设置如下:
    .;c:\j2sdk\lib\dt.jar;c:\j2sdk\lib\tools.jar;D:\code\qiujava;
    我觉得应该没有什么问题了吧!如果你在这样运行,就可以了 
    D:\code\qiujava\>java c05.dessert.Dinner
    注意当前目录
      

  18.   

    teaky2002说的对,我最后一行写错了应该是象teaky说的那样写,你再试试,应该没问题了还按照我说的那样编译,然后按照teaky说的那样运行,应该就没问题了,好运~我开始也遇到这样的问题了,就是这样解决的,呵呵。
      

  19.   

    你把bit()的修饰符换成public或者干脆去掉应该就可以了,因为protected说明只有继承了它的子类可以使用,明白吗?你这样是无法调用该类的bit()方法的啊!!!
      

  20.   

    再次感谢各位!!我的class总算运行顺利了,可我实在不明白下面命令的区别:
    d:\code\qiujava\c05\dessert\java Dinner;
    d:\code\qiujava\java c05.dessert.Dinner;
    d:\code\qiujava\java c05\dessert\Dinner;
      

  21.   

    这种问题在书上都写的很清楚的啊!你如果直接不能执行把包的名字加上就可以了,如果一个目录下不能访问classpath里把.加上就可以了,你这个程序没什么好讨论的。