Java關(guān)于jar包的知識(shí)詳解
在學(xué)習(xí)jar包之前,要先弄懂Java包,以及關(guān)于Java包的相關(guān)概念。
一、包
為了更好地組織類,Java提供了包機(jī)制。包是類的容器,用于分隔類名空間。如果沒有指定包名,所有的示例都屬于一個(gè)默認(rèn)的無(wú)名包。
格式為:
package pkg1[.pkg2[.pkg3…]];
代碼實(shí)例:
package cn.com.zhouzhou;//包名一定要由小寫字母組成 public class Lession1 { public static void main(String[] args) { System.out.println("這是我創(chuàng)建的第一個(gè)在包下的文件"); } }
注意事項(xiàng):
1.程序中如果有package語(yǔ)句,該語(yǔ)句一定是源文件中的第一條可執(zhí)行語(yǔ)句;
2.package語(yǔ)句的前面只能有注釋或空行;
3.一個(gè)文件中最多只能有一條package語(yǔ)句;
4.包的名字有層次關(guān)系,各層之間以點(diǎn)分隔(上例中的“cn.com.zhouzhou”);
(圖:演示)
5.包層次必須與Java開發(fā)系統(tǒng)的文件系統(tǒng)結(jié)構(gòu)相同;
6.通常包名中全部用小寫字母;
7.當(dāng)使用包說(shuō)明時(shí),程序中無(wú)需再引用(import)同一個(gè)包或該包的任何元素;
8.import語(yǔ)句只用來(lái)將其他包中的類引入當(dāng)前名字空間中。而當(dāng)前包總是處于當(dāng)前名字空間中。
* 示例演示:
1)編譯的時(shí)候用:(我的文件是存在E盤了)
e:\>javac -d . Lession1.java // 可以生成對(duì)應(yīng)的文件夾結(jié)構(gòu)
2)執(zhí)行的時(shí)候,要執(zhí)行全類名
java cn.com.zhouzhou.Lession1
注意事項(xiàng)說(shuō)明:
1.同一個(gè)源文件中的類,都在同一個(gè)包中,同一個(gè)包中的內(nèi)容互相訪問,不用導(dǎo)包;
2.導(dǎo)包的時(shí)候 以下兩句;
import cn.com.zhouzhou.beans.*;
import cn.com.zhouzhou.beans.UserInfo;
這兩句,只在編譯的時(shí)候有后者稍快一點(diǎn),在運(yùn)行的時(shí)候沒有任何區(qū)別
3.如果要設(shè)置classpath ,要設(shè)置到最外層的文件夾所在的目錄上,比如:
package cn.com.zhouzhou;
set classpath=cn的所在的文件夾名稱
4.對(duì)于父包和子包,在使用上沒有任何關(guān)系,只要不在一個(gè)包中,引用的時(shí)候就必須導(dǎo)包;
5.以后在開發(fā)中,如果出現(xiàn)一個(gè)類名找不到的情況,主要以下原因:
1)類名寫錯(cuò)了
2)包名錯(cuò)了
3)classpath 設(shè)置錯(cuò)了
6.對(duì)于 java.lang 包下的類,使用的時(shí)候可以不導(dǎo)包。
二、jar包
java中的jar文件 ,裝的是 .class 文件。它是一種壓縮,和zip兼容,被稱為jar包。JDK提供的許多類,也是以jar包的形式提供的。
在用的時(shí)候呢,你的文件里有很多個(gè)類,把這些類和他們的目錄一起壓縮到一個(gè)文件中給別人,會(huì)顯得更專業(yè),有條理。別人拿到這個(gè)jar包之后,只要讓他的classpath 的設(shè)置中包含這個(gè)jar文件,java虛擬機(jī),在裝載類的時(shí)候,就會(huì)自動(dòng)解壓這個(gè)jar文件,并將其當(dāng)成目錄,然后在目錄中查找我們所要的類及類的包名和所對(duì)應(yīng)的目錄的結(jié)構(gòu)。
那么如何創(chuàng)建一個(gè)Jar包呢?下面我將演示一下具體步驟:
1.需要打成jar包的文件
package cn.com.zhouzhou;//包名一定要由小寫字母組成 public class Lession2 { public static void main(String[] args) { System.out.println("這是我要打jar包的文件"); } }
2.編譯
e:\>javac -d . Lession2.java
(d后面的點(diǎn),點(diǎn)的兩側(cè)都要有空格)
3.打Jar包
jar -cvf myjarbao.jar cn
(生成名叫myjarbao.jar的文件;后面的cn不要忘記)
生成結(jié)果如下:
以上所述是小編給大家介紹的Java關(guān)于jar包的知識(shí)詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Java object wait notify notifyAll代碼解析
這篇文章主要介紹了Java object wait notify notifyAll代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Java實(shí)現(xiàn)Html轉(zhuǎn)Pdf的方法
這篇文章主要介紹了Java實(shí)現(xiàn)Html轉(zhuǎn)Pdf的方法,實(shí)例分析了java基于ITextRenderer類操作頁(yè)面及系統(tǒng)自帶字體生成pdf文件的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07Java?C++題解leetcode764最大加號(hào)標(biāo)志示例
這篇文章主要為大家介紹了Java?C++題解leetcode764最大加號(hào)標(biāo)志示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01springboot 設(shè)置CorsFilter跨域不生效的解決
這篇文章主要介紹了springboot 設(shè)置CorsFilter跨域不生效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Spring編程式和聲明式事務(wù)實(shí)例講解小結(jié)
這篇文章主要介紹了Spring編程式和聲明式事務(wù)實(shí)例講解小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Spring Cloud Ribbon實(shí)現(xiàn)客戶端負(fù)載均衡的方法
本篇文章主要介紹了Spring Cloud Ribbon實(shí)現(xiàn)客戶端負(fù)載均衡的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之健身器材商城系統(tǒng)的實(shí)現(xiàn)
只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Jdbc+Servlet+Ajax+Fileupload+mysql實(shí)現(xiàn)健身器材商城系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2022-03-03手把手帶你實(shí)現(xiàn)第一個(gè)Mybatis程序
這篇文章主要介紹了mybatis實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-07-07