標籤:解決方案 public 檔案夾 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
本文出自 “kivilin_IT_start” 部落格,請務必保留此出處http://kivilin.blog.51cto.com/6914610/1629991
java下包內繼承時編譯不過解決方案