我在硬盘的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会给你警告,就是这个道理啦!