是尚学堂马士兵视频里的一个实例Dog.java和Cat.java,不知道问题出在哪了:Cat.java 的代码如下:package com.bjsxt.java140;class Cat {
}
Dog.java 的代码如下:import com.bjsxt.java140.*;public class Dog {
public static void main(String[] args) {
Cat c = new Cat();
}
}//javac Cat.java  可以正常编译生成.class文件,Cat.class文件在F:\java\testpackage\com\bjsxt\java140目录下。/** javac Dog.java(在F:\java\testpackage目录) 编译有 1 个错误,提示如下:Dog.java:7: 找不到符号
符号:构造函数Cat()
位置:类Cat
          Cat c = new Cat();
1个错误
*///我在环境变量->系统变量的classpath中也添加了"F:\java\testpackage" 可问题还是没解决,不知道怎么回事。

解决方案 »

  1.   

    class Cat { 

    得是public的其他类才能访问啊,你这么定义只能在同一个包中访问
      

  2.   

    public class Cat { }改完之后不是同样问题。
      

  3.   

    Dog.java与Cat.java不在同一个包下,并且Cat是default修饰的,Dog当然找不到Cat了;
    两个办法:1.把Dog.java和Cat.java都放在F:\java\testpackage\com\bjsxt\java140下;
              2.改Cat为public class
      

  4.   

    com/bjsxt/java140你的cat是放在这个目录下吗?
    你的dog.java是放在和com同级的目录下吗?
      

  5.   

    Cat.java  文件在F:\java\testpackage\com\bjsxt\java140\Cat.java
    Cat.class 文件在F:\java\testpackage\com\bjsxt\java140\Cat.class
    Dog.java  文件在F:\java\testpackage\Dog.java目录结构是  F:\java\testpackage\com\bjsxt\java140按照4楼大哥的方法还是不行。我甚至把马士兵老师的文件和目录原本的拷过来运行都是一样的错误提示。
      

  6.   

    先javac -d cat.java
    另外dog.java要和com在同一目录下
    再编译和运行dog.java
      

  7.   


    直接输入  javac -d cat.java  回车也有问题。
      

  8.   


    重新打开cmd 后还是同样问题,我真是郁闷死了。
      

  9.   

    public 问题,路径问题,貌似都解决了~怎么还是找不到那?环境变量的问题?
      

  10.   


    我现在把目录修改如下:Cat.java  文件在F:\java\testpackage\com\bjsxt\java140\Cat.java 
    Cat.class 文件在F:\java\testpackage\com\bjsxt\java140\Cat.class 
    Dog.java  文件在F:\java\testpackage\com\bjsxt\java139\Dog.java Dog.java程序修改如下:package com.bjsxt.java139;  //就是把目录改了,多加了这一句,现在编译运行可以通过,
                                    //但是原先的问题一直没有解决,郁闷
    import com.bjsxt.java140.*; public class Dog { 
    public static void main(String[] args) { 
    Cat c = new Cat(); 


      

  11.   

    两个文件改一下
    package com.bjsxt.java140;public class Cat 
    {


    import com.bjsxt.java140.Cat;public class Dog
    {
    public static void main(String[] args) 
    {
    Cat c = new Cat();
    }
    }
    把Cat.java 和 Dog.java 放到F:\java\testpackage
    javac -d . cat.java 
    javac dog.java
    java Dog
    就可以了.
      

  12.   


    meteor57 :非常感谢您,按照您的方法试了一下真的可以,这个小问题郁闷了一个下午了。可是我还有个疑问就是:  import com.bjsxt.java140.Cat;  为什么用这个编译可以通过;
    而import com.bjsxt.java140.*;  把 .Cat 改成 .* 就会出现上述问题呢???不解??
      

  13.   

    http://soft.ccw.com.cn/apply/programming/htm2008/20080506_420506.shtml