日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java的使用Pair要导入什么包,第三方jar包的使用

發(fā)布時(shí)間:2023/12/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java的使用Pair要导入什么包,第三方jar包的使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

被導(dǎo)入的外部類所在源文件通常要打包成jar包,java中的jar文件裝的是 .class 文件。它是一種壓縮格式和zip兼容,被稱為jar包。

JDK提供的許多類,也是以jar包的形式提供的。在用的時(shí)候呢,你的文件里有很多個(gè)類,把這些類和他們的目錄一起壓縮到一個(gè)文件中發(fā)布出去的。使用者拿到這個(gè)jar包之后,只要讓CLASSPATH的設(shè)置中包含這個(gè)jar文件,java虛擬機(jī)在裝載類的時(shí)候,就會(huì)自動(dòng)解壓這個(gè)jar文件,并將其當(dāng)成目錄,然后在目錄中查找我們所要的類及類的包名和所對(duì)應(yīng)的目錄的結(jié)構(gòu)。

jar包的打包步驟如下

[root@localhost test]# javac -d . Shoes.java???????????? #編譯

[root@localhost test]# jar -cvf shoejar.jarcom??????????#打包,注意將目錄也要包含進(jìn)去

added manifest

adding: com/(in = 0) (out= 0)(stored 0%)

adding: com/dangdang/(in = 0) (out= 0)(stored 0%)

adding: com/dangdang/shoe/(in = 0) (out= 0)(stored0%)

adding: com/dangdang/shoe/Shoes.class(in = 771)(out= 466)(deflated 39%)

這樣就得到了一個(gè)jar包,我們可以使用unzip解壓驗(yàn)證一下,如

[root@localhost test]# unzip shoejar.jar

Archive:?shoejar.jar

creating:META-INF/

inflating:META-INF/MANIFEST.MF

creating:com/

creating:com/dangdang/

creating: com/dangdang/shoe/

inflating:com/dangdang/shoe/Shoes.class

可見,jar包中只有類文件。拿到j(luò)ar包后,該如何使用?

假如jar包存放在如下位置

[root@localhost test]# tree

.

├──Clothes.java

└──jar

└──shoejar.jar

1 directory, 3 files

[root@localhost test]#

首先編譯主類文件,這需要使用-cp或-classpath指定主文件運(yùn)行所依賴的其他.class文件所在的路徑。我們嘗試編譯Clothes.java文件。如

[root@localhost test]# javac -cp ./jar/* Clothes.java

[root@localhost test]#

編譯成功,運(yùn)行類文件,但是情況不妙,報(bào)找不到Class異常

[root@localhost test]# java?Clothes

i'm making a XL size cloth with color red

Exception in thread "main"java.lang.NoClassDefFoundError: com/dangdang/shoe/Shoe

atClothes.main(Clothes.java:26)

Caused by: java.lang.ClassNotFoundException:com.dangdang.shoe.Shoe

atjava.net.URLClassLoader.findClass(URLClassLoader.java:381)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

atsun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)

atjava.lang.ClassLoader.loadClass(ClassLoader.java:357)

... 1more

這是因?yàn)閖ar包中的類文件無法進(jìn)行加載。

我們?cè)俅问褂?cp參數(shù)指定依賴類路徑,運(yùn)行

[root@localhost test]# java -cp jar/* Clothes

Error: Could not find or load main class Clothes

[root@localhost test]#

因?yàn)閏p只指定了依賴類所在的jar目錄,覆蓋了默認(rèn)的搜索路徑即當(dāng)前目錄(即.),而當(dāng)前目錄是Clothes.class文件所在目錄,因此要運(yùn)行這個(gè).class字節(jié)碼文件,需要將當(dāng)前目錄也加進(jìn)來(用:隔開),系統(tǒng)才能找到當(dāng)前目錄下的Java類。

[root@localhost test]# java -cp?.:jar/*?Clothes???????????????#指定搜索路徑

i'm making a XL size cloth with color red

i'm making a pair of shoes with color red and size41

[root@localhost test]# ll

我們也可以使用java本身的類加載功能,即可以把需要加載的jar都扔到JRE_HOME/lib/ext下面,這個(gè)目錄下的jar包會(huì)在Bootstrap Classloader工作完后由Extension Classloader來加載。

[root@localhost test]# cp jar/shoejar.jar/usr/java/jdk1.8.0_181/jre/lib/ext/

[root@localhost test]# javac Clothes.java?????????????????? #編譯

[root@localhost test]# java Clothes

i'm making a XL size cloth with color red

i'm making a pair of shoes with color red and size41

總結(jié)

以上是生活随笔為你收集整理的java的使用Pair要导入什么包,第三方jar包的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。