java編譯時指定classpath的實現(xiàn)方法
說明
- Java編譯時可以通過選項
--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文件:

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

指定依賴的classpath中含有包名,編譯出錯
下面用-classpath src\com\thb指定了依賴的路徑,但是錯誤的,因為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的實現(xiàn)方法的文章就介紹到這了,更多相關(guān)java編譯時指定classpath內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java并發(fā)編程之Condition源碼分析(推薦)
這篇文章主要介紹了Java并發(fā)編程之Condition源碼分析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Springboot基礎(chǔ)之RedisUtils工具類
本文來說下RedisUtils工具類,主要介紹了整合Redis、MyBatis,封裝RedisUtils工具類等知識,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05
spring-boot-starter-security的簡單使用方式
文章介紹了三種使用Spring Boot Security的方法:基于配置文件、基于配置類和基于注解的方式,通過這些方法,可以實現(xiàn)對Web應(yīng)用的權(quán)限控制,確保只有授權(quán)用戶才能訪問特定資源2024-11-11

