问个问题 :在当前目录建一个包,编写一个.java文件(用到当前目录中的public Family类)放到包中编译成功,当是当加上package语句时无法编译 输出错误无法找到Family类 为什么?
谢谢了

解决方案 »

  1.   

    package结构必须跟文件所在的目录结构相同。
      

  2.   

    classpath问题,最好贴代码出来,必须要与你定义的目录相同 package还必须是第一条语句
      

  3.   

    是这样的
    写了个A.java放在包中mypg中,电脑已经有这个目录了,A.java用到了一个默认包中的公共类Family类
    到mypg下编译 解释都成功(这个时候没加上package语句)但是当加上package语句后,编译显示 找不到Family类   真是奇了怪了
    大家帮忙解释一下~
      

  4.   

    Family类应该放到目录的根下边。如果是这样的话,不应该有错,
    包的路径和目录的路径最好一一对应起来。
      

  5.   

    “在当前目录建一个包”,怎么建的,新建文件夹吗?“但是当加上package语句后,编译显示 找不到Family类   真是奇了怪了”
    包的概念一开始是不太好理解,用时间长了就自然通了可以把你的代码简化一下发上来大家看看!具体问题具体分析呵呵
      

  6.   

    classpath=.;c:\myjava;c:\j2se\lib;
    我写的代码一般放在c:\myjava中,新建一个目录cn.mypg
    public class Father
    {
    void show()
    {
    System.out.println("father's method is called");
    }
    }
    ////////////////////////////////
    class A
    {
    public static void main(String[] args)
    {
    Father fa=new Father();
    fa.show();
    }
    }
    我把A.java存放在cn.mypg中
    c:\myjava\cn\mypg javac A.java
    成功
    c:\myjava\cn\mypg java A.class 
    father's method is called  成功问题出现了
    当我在A.java加了package后(把已存在cn\mypg 中的A.java A.class 删除了)
    package cn.mypg; 
    class A
    {
    public static void main(String[] args)
    {
    Father fa=new Father();
    fa.show();
    }
    }
    c:\myjava\cn\mypg javac A.java
    显示 找不到Father类~~~\
     Father.class明明就在c:\myjava 下`~~~
    大家给分析一下`~谢谢了~~
      

  7.   

    首先,classpath环境变量中的“c:\j2se\lib”应该是“c:\j2se\lib\tools.jar”然后,你应该在c:\myjava\下编译:
    c:\myjava> javac cn\mypg\A.java
      

  8.   

    Family 更本不在你制定的package目录下
      

  9.   

    Family 是不在我的package目录下 可它不是可以通过classpath找到吗?
    我看到社区有很多关与包的问题和我的差不多
    还请那些已经明白其中问题的人给来提个醒,谢谢了~