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
?
?
?
?
?????
?
?
?
?
?
轉載于:https://blog.51cto.com/kivilin/1629991
總結
以上是生活随笔為你收集整理的java下包内继承时编译不过解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6个功能杰出的黑科技APP, 每一个都令
- 下一篇: 关于在Flask中使用Restful