关于package的一个难题

我在硬盘的D,E分区上做这个实验:

在E:\she 盘上建一Display.java源文件并编译好:

public class Display{

public void printout(){

  System.out.println("the class Display say......");

}

}



在D盘上建一DisplayOthers.java源文件:

import she.*;

public class DisplayOthers{

public static void main(String[] args){

  Display dis = new Display();

  dis.printout();

}

}



设置classpath为E:\   , 在D:\下编译DisplayOthers出现错误,找不到Display !

这是为什么?




问题补充:
首先感谢大家的回答!特别感谢 asin的回答.

但是我按照asin的做法做了,还是找不到类Display!!!

我还在想办法......
问题补充:
我是这么编译Display.java:

E:> javac -d . Display.java

这时的classpath的值不要紧的吧.



接着编译DisplayOthers.java:

D:> set classpath=e:\

D:> javac DisplayOthers.java

这时就出现上述错误!


问题补充:
我在Eclipse环境下做这个实验没有问题.
问题补充:
我现在的问题是编译不了DisplayOthers.java

问题的关键是运行的时候把两个类都加入到classpath中:
set classpath=e:\;d:\

另外,你是先编译的Display类,(不知道你引入包声明没,在she目录中)
你用的是: E:> javac -d . Display.java
这样的话就不需要包声明了


     首先,你的Display.java类应该引入包声明 package she;
     再就是编译后,要把classpath设置为e:\;d\
     这样就可以了...

 

这个问题很基础,默认包里面的类不能被别的包里面的类访问。当你在默认包里创建类时,eclipse会给你警告,就是这个道理啦!