平時(shí)經(jīng)常用到一個(gè)"classpath"嗽上,但是卻沒(méi)有去專門了解這個(gè)到底表示什么意思,今天就系統(tǒng)的學(xué)習(xí)一下熄攘。
- ClassPath是一組搜索類的路徑兽愤,多個(gè)路徑用":"分隔。
- 在IDE里啟動(dòng)時(shí)挪圾,ClassPath的順序是:
jdk jar > target/classes > maven dependencies
在測(cè)試時(shí)浅萧,ClassPath的順序是:
jdk jar > target/test-classes > target/classes > maven dependences
正是這個(gè)原因,我們可用通過(guò)直接覆蓋開(kāi)源代碼的方式對(duì)其進(jìn)行修改哲思,而不用將其下載下來(lái),直接拷貝一份需要修改的類的代碼對(duì)其進(jìn)行修改洼畅,最后再重新編譯就完了。
當(dāng)然棚赔,ClassPath這個(gè)路徑問(wèn)題也讓我明白了有時(shí)為什么帝簇,我明明對(duì)代碼進(jìn)行修改了,但是運(yùn)行結(jié)果還是之前的靠益,這是代碼沒(méi)有同步到target/classes下的原因丧肴。因此需要rebuild一下項(xiàng)目,保證修改的代碼已經(jīng)同步胧后。
- 默認(rèn)情況下芋浮,它是當(dāng)前目錄,也可以通過(guò)環(huán)境變量來(lái)設(shè)置壳快。
平常我們?cè)诖a中寫的classpath:一般都是文件當(dāng)前目錄纸巷。