java下包內繼承時編譯不過解決方案

代碼源自《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

 

 

 

 

     

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章