java編譯時指定classpath的實(shí)現(xiàn)方法
說明
- Java編譯時可以通過選項(xiàng)
--class-path <path>,或者 -classpath <path>,或者-cp <path>來指定查找用戶類文件、注釋程序處理程序、或者源文件的位置。 - 這個設(shè)置覆蓋CLASSPATH環(huán)境變量的設(shè)置。
- 如果沒有設(shè)置
-sourcepath,那么--class-path <path>,或者 -classpath <path>,或者-cp <path>指定的路徑也會被用來查找源文件。 - 如果沒有設(shè)置
-processorpath,那么--class-path <path>,或者 -classpath <path>,或者-cp <path>指定的路徑也會被用來查找注解處理器。
注意:--class-path <path>,或者 -classpath <path>,或者-cp <path>指定的路徑是指存放Java包的位置,里邊不包含Java包的路徑
舉例
Java類的層次結(jié)構(gòu)(后面幾個例子用到)
例如java源文件的層次結(jié)構(gòu)如下,其中com.thb和com.thb.bian是Java包名:

Person 類是一個父類:
package com.thb;
public class Person {
public String getOccupation() {
return "";
}
}
Student 類是Person 類的子類,并且和Person 類在同一個包中:
package com.thb;
public class Student extends Person {
@Override
public String getOccupation() {
return "student";
}
}
Teacher 類是Person 類的子類,并且和Person 類不在同一個包中:
package com.thb.bian;
import com.thb.Person;
public class Teacher extends Person {
@Override
public String getOccupation() {
return "teacher";
}
}
不指定依賴的classpath,編譯出錯
現(xiàn)在不指定classpath,編譯Teacher.java文件:

從上面輸出可以看到,出錯了,這是因?yàn)門eacher依賴于Person,找不到。
不指定classpath,編譯Student.java文件,盡管和依賴的Person在同一個包中,也會出錯:

指定依賴的classpath中含有包名,編譯出錯
下面用-classpath src\com\thb指定了依賴的路徑,但是錯誤的,因?yàn)?code>com/thb是包名的一部分,不應(yīng)該包含在內(nèi):

指定了依賴的正確classpath,編譯成功
下面用-classpath src指定了依賴的源文件Person.java的位置,編譯成功

到輸出目錄下查看,Teacher.java文件和依賴的Person.java都被編譯了:

同時編譯被依賴的源文件,可以不指定依賴的classpath 在src/com/thb目錄下有Person.java和Student.java文件,其中Student依賴于Person,現(xiàn)在全部編譯該目錄下的文件,不指定依賴的classpath編譯成功:

到輸出目錄下查看,生成了正常的class文件:

在src/com/thb目錄下有Person.java和Student.java文件,src/com/thb/bian目錄下有Teacher.java文件,其中Student和Teacher都依賴于Person。在現(xiàn)在全部編譯該目錄下的文件,不指定依賴的classpath編譯成功:

到輸出目錄下查看,生成了正常的class文件:

到此這篇關(guān)于java編譯時指定classpath的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)java編譯時指定classpath內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
log4j2 自動刪除過期日志文件的配置及實(shí)現(xiàn)原理
這篇文章主要介紹了log4j2 自動刪除過期日志文件配置及實(shí)現(xiàn)原理解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Java使用Spire.Doc for Java實(shí)現(xiàn)自動創(chuàng)建Word文檔
在日常的軟件開發(fā)中,我們常常會遇到需要程序化生成 Word 文檔的需求,本教程將深入探討如何利用 Spire.Doc for Java 這一強(qiáng)大庫,幫助開發(fā)者掌握 Java 創(chuàng)建 Word 文檔的核心技能,希望對大家有所幫助2025-10-10
使用java.util.Timer實(shí)現(xiàn)任務(wù)調(diào)度
這篇文章主要為大家詳細(xì)介紹了使用java.util.Timer實(shí)現(xiàn)任務(wù)調(diào)度,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
Mybatis如何根據(jù)List批量查詢List結(jié)果
這篇文章主要介紹了Mybatis如何根據(jù)List批量查詢List結(jié)果,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Java使用POI實(shí)現(xiàn)導(dǎo)出Excel的方法詳解
在項(xiàng)目開發(fā)中往往需要使用到Excel的導(dǎo)入和導(dǎo)出,導(dǎo)入就是從Excel中導(dǎo)入到DB中,而導(dǎo)出就是從DB中查詢數(shù)據(jù)然后使用POI寫到Excel上。本文將利用POI實(shí)現(xiàn)導(dǎo)出Excel,需要的可以參考一下2022-10-10
Java實(shí)現(xiàn)文件上傳與文件下載的示例代碼
在開發(fā)中項(xiàng)目難免會遇到文件上傳和下載的情況,這篇文章主要為大家詳細(xì)介紹了Java中實(shí)現(xiàn)文件上傳與文件下載的示例代碼,希望對大家有所幫助2023-07-07
springboot+HttpInvoke?實(shí)現(xiàn)RPC調(diào)用的方法
RPC框架大家或多或少都用過,出自于阿里系的就有dubbo,HSF,sofaRPC等,今天通過本文給大家介紹springboot+HttpInvoke?實(shí)現(xiàn)RPC調(diào)用的方法,感興趣的朋友一起看看吧2022-03-03
Java 實(shí)現(xiàn)滑動時間窗口限流算法的代碼
這篇文章主要介紹了Java 實(shí)現(xiàn)滑動時間窗口限流算法的代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11

