參考文檔:http://blog.csdn.net/qq369201191/article/details/49946609
工作以來習(xí)慣了maven編譯,已經(jīng)忘記了javac這個東東,以至于遇到j(luò)avac問題時困惑了,下面總結(jié)一下,以便后者參考。
一、使用javac進行項目java文件編譯,待編譯java文件引用其他路徑的java文件的情況
1、文件結(jié)構(gòu)圖,只需要關(guān)注com及其子目錄即可:

2、Person類,注意包名是:com.javac

3、Student類,繼承Person,即依賴Person,注意包名是:com.javac.student

4、cmd進入一個目錄,然后用相對路徑或者絕對路徑運行javac,需要注意以下兩點:
(1)語法:javac -cp [依賴.java文件的路徑] [待編譯的.java文件];
(2)重點?。?!
[依賴.java文件的路徑]指的是“除依賴.java文件中pakage以外的路徑”,舉個栗子:
本文中(以相對路徑為例):
依賴的Person.java文件pakage為“com.javac”
那么[依賴.java文件的路徑]應(yīng)該是:src/main/java/,而不是src/main/java/com/javac!
因為java的編譯器會從src/main/java/開始找Student.java文件中[import com.javac.Pseron]的com/javac/Persion.java文件,即兩者疊加后:src/main/java/com/javac/Persion.java為真實路徑。

二、使用javac進行項目java文件編譯,待編譯java文件依賴外部jar包
則 javac -cp [jar包相對/絕對位置,需要具體到.jar] [待編譯文件相對或絕對路徑]