代码源自《java核心技术一卷》
抽象表示如下:
ManagerTest.java
package inheritance;
...
public class ManagerTest
{
}
存放于:inheritance/ManagerTest.java
Manager.java
package inheritance;
...
public class Manager
{
}
存放于:inheritance/Manager.java
Employee.java
package inheritance;
...
public class Employee
{
}
存放于:inheritance/Employee.java
好了 现在编译一下
javac *.java
找不到符号
什么意思呢?
就是说 这三个类放在一个文件夹inheritance里面
一个挨着一个
可是编译的时候就是看不到对方
那怎么解决好?
方案一:
三个类仍旧一起扔在inheritance文件夹里面
把三个类开头的package inheritance注释掉 例如://package inheritance;
再次编译 javac *.java
方案二:
将需要运行main()函数的类提到文件夹外面
这里呢就是ManagerTest.java 啦
以我的实验为例:
我电脑的路径是
f:\java1\fivecptr\fivecptrone\inheritance(三个类在这)
我呢把ManagerTest.java放到了java1这个文件夹里面
f:\java1\fivecptr\fivecptrone\inheritance(剩下2个类)
.......↑......................
ManagerTest.java
然后修改代码如下
inheritance里面两个类的package 改为:
package fivecptr.fivecptrone.inheritance;
............__________↑_____________
f:\java1\fivecptr\fivecptrone\inheritance
就是把ManagerTest.java类后面的路径全部抄上去 当然"\"换成"."
TIPS:路径名不能有奇怪的符号例如:下划线_ , 阿拉伯数字0,1... (所以有蛋疼的fivecptr - -!)
下一步:
java1里面的ManagerTest.java 里面
1) 注释掉package //package inheritance;
2) 开头添加 import fivecptr.fivecptrone.inheritance.*; (和上面一样,末尾添加通识符*)
接下来 设置类路径
(win7下)
计算机-(左侧)计算机右键-属性-高级系统设置-环境变量-系统变量-新建
名字:CLASSPATH;
路径:f:java1; .; (就是把ManagerTest.java那个类所在的文件夹java1之前的-包括java1-的路径写上去, 后面也可以再加个 .; (句号+分号, 如果方案一不行时可能是这里的问题,它表示在当前目录搜索类)
确定
重新开启console (黑框框- -!)
cd到ManagerTest.java所在文件路径下
运行:
javac ManagerTest.java