第3版 第5章11题
在c05/local目录下编写以下文件(假定c05/local目录在你的CLASSPATH中)
//c05:local:PackagedClass.java 
package c05.local;public class PackagedClass {
  public PackagedClass() {
    System.out.println("creating a ");
  }}然后在c05之外的另一个目录中创建下列文件:
//c05:foreign:Foreign.java
package c05.foreign;
import c05.local.PackagedClass;
public class Foreign {
  public Foreign() {  }
  public static void main(String [] args){
  PackagedClass pc=new PackagedClass();
  }}
解释一下为什么编译器会产生错误。如果将Foreign类置于c05.local包之中的话,会改变吗?我知道都会产生错误
就不知道为什么了
呵呵
请大家说说看,为什么会编译错误?

解决方案 »

  1.   

    因为Foreign 类找不到PackagedClass类,把这个类加到环境变量中试一试,是不是可以解决问题?如果要是合为一个文件,改为下面的形式就可以编译通过:
    package c05.foreign;class PackagedClass {
      public PackagedClass() {
        System.out.println("creating a ");
      }}
    public class Foreign {
      public Foreign() {  }
      public static void main(String [] args){
      PackagedClass pc=new PackagedClass();
      }}
      

  2.   

    如果用IDE工具,这个是没有问题的;这是与程序执行时认的根目录有关
      

  3.   

    这是classpath 的问题, 建议去看看那部分的内容吧。