d:\java4 下的class p
 
public class p{
  private int i;  
  public void p(){
  i=0;
}public  void seti(int i){
   this.i=i;
}
public int geti(){
  return i;
}
}
d:\java4下同样的class o如下package l;public class o{
  public static void main(String argd[]){
       p a=new p();
       System.out.println(a.geti());
       a.seti(3);
       System.out.println(a.geti());
}
}在路径 d:\java4下编译javac p.java
顺利通过
在路径 d:\java4下编译javac o.java
o.java:5:找不到符号
符号:类p
位置:类l.o
     p a=new p();
o.java:5:找不到符号
符号:类p
位置:类l.o
     p a=new p();
2错误是什么原因请帮忙解决

解决方案 »

  1.   

    javac -classpath 路径 java 0.java
    路径是存放有p.java的目录
      

  2.   

    你两个文件是放在同一个目录下的吗?如果是的话应该默认就是同一个包中的,应该是可以成功的啊。====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  3.   

    我的机器上也不行,你还是把P打下包吧。我估计是J2SDK版本的问题。
    d:\java4 下的class ppackage pac;
    public class p{
      private int i;  
      public void p(){
      i=0;
    }public  void seti(int i){
       this.i=i;
    }
    public int geti(){
      return i;
    }
    }
    d:\java4 下的class opackage l;
    import pac.p;
    public class o{
      public static void main(String argd[]){
           p a=new p();
           System.out.println(a.geti());
           a.seti(3);
           System.out.println(a.geti());
    }
    }
      

  4.   

    哎,还是抓个IDE来吧,在这种东西上耗费时间不值得,用了Eclipse就发现根本不会遇到这种问题
      

  5.   

    class p
    那里的public全部去掉应该就可以通过
    最起码要去掉class p前面的,应该是吧
      

  6.   

    应该把p.java package到i中,个人认为原因是类加载器找不到p这个类,因为o这个类是在i里的。
      

  7.   

    P是属于无名包,而O是属于包I的,原则上可由无名包访问有名包,也就是说P可以访问O,但O不能访问P,哪怕P和O在同一目录下.上述代码不好,要么都在包中,要么都不用包.
      

  8.   

    p属于缺省包,而o属于l包,这两个是在不同的包里,所以不能直接这样使用p a=new p(),而是要导入p所属的包或放入同一包内
      

  9.   

    classpath理应该设置这两个路径,然后这个类应该import近来