应该是目录的问题应该把两个.java文件都放在Shapes的目录里。package的结构应该和文件目录结构一样。javac和java都应该在最上一级目录里执行,即Shapes的上一级目录。正确的结构应该是这样的:
C:\home>dir
Volume in drive C has no label.
Volume Serial Number is 43C1-842F
Directory of C:\home
06/23/2006 12:06 AM .
06/23/2006 12:06 AM ..
06/23/2006 12:06 AM Shapes
0 File(s) 0 bytes
3 Dir(s) 32,119,504,896 bytes free
C:\home>dir Shapes
Volume in drive C has no label.
Volume Serial Number is 43C1-842F
Directory of C:\home\Shapes
06/23/2006 12:06 AM .
06/23/2006 12:06 AM ..
06/23/2006 12:08 AM 0 BasicShape.java
06/23/2006 12:08 AM 0 Shape2D.java
2 File(s) 0 bytes
2 Dir(s) 32,119,504,896 bytes free
C:\home>javac Shapes\Shape2D.java
......
C:\home>java Shapes.Shape2D
......
当你编译Shapes\Shape2D.java时,javac会去找Shapes\Shape
厉害, 谢谢回答
我原来的CLASSPATH设置成 .
在同一个package下编译就找不到file, 后来我把CLASSPATH改成 .;.. 就行了
不过这种方法不如你的方法通用,比如多层package
在同一个package下编译就找不到file, 后来我把CLASSPATH改成 .;.. 就行了
不过这种方法不如你的方法通用,比如多层package