国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - jar命令的用法詳解

jar命令的用法詳解

2019-11-26 15:13shichen2014 JAVA教程

這篇文章主要介紹了jar命令的用法,非常實用,需要的朋友可以參考下

本文詳細講述了JAR命令的用法,對于大家學習和總結jar命令的使用有一定的幫助作用。具體如下:

JAR包是Java中所特有一種壓縮文檔,其實大家就可以把它理解為.zip包。當然也是有區別的,JAR包中有一個META-INF\MANIFEST.MF文件,當你找成JAR包時,它會自動生成。

JAR包是由JDK安裝目錄\bin\jar.exe命令生成的,當我們安裝好JDK,設置好path路徑,就可以正常使用jar.exe命令,它會用lib\tool.jar工具包中的類。這些細節就不用管它了。

讓我們看看它怎么么使用吧:
 
一.jar命令參數:
 
jar命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目錄]文件名...
 
其中{ctxu}這四個參數必須選選其一。[v f m e 0 M i ]是可選參數,文件名也是必須的。
 
-c  創建一個jar包
-t 顯示jar中的內容列表
-x 解壓jar包
-u 添加文件到jar包中
-f 指定jar包的文件名
-v  生成詳細的報造,并輸出至標準設備
-m 指定manifest.mf文件.(manifest.mf文件中可以對jar包及其中的內容作一些一設置)
-0 產生jar包時不對其中的內容進行壓縮處理
-M 不產生所有文件的清單文件(Manifest.mf)。這個參數與忽略掉-m參數的設置
-i    為指定的jar文件創建索引文件
-C 表示轉到相應的目錄下執行jar命令,相當于cd到那個目錄,然后不帶-C執行jar命令
 
二.jar使用范例:
 
(1)創建jar包

?
1
jar cf hello.jar hello

利用test目錄生成hello.jar包,如hello.jar存在,則覆蓋
 
(2)創建并顯示打包過程

?
1
jar cvf hello.jar hello

利用hello目錄創建hello.jar包,并顯示創建過程
例:

?
1
E:\>jar cvf hello.jar hello

標明清單(manifest)
增加:hello/(讀入= 0) (寫出= 0)(存儲了 0%)
增加:hello/TestServlet2.class(讀入= 1497) (寫出= 818)(壓縮了 45%)
增加:hello/HelloServlet.class(讀入= 1344) (寫出= 736)(壓縮了 45%)
增加:hello/TestServlet1.class(讀入= 2037) (寫出= 1118)(壓縮了 45%)
 
(3)顯示jar包:

jar tvf hello.jar   查看hello.jar包的內容
指定的jar包必須真實存在,否則會發生FileNoutFoundException。
 
(4)解壓jar包:

?
1
jar xvf hello.jar

解壓hello.jar至當前目錄
 
(5)jar中添加文件:

?
1
jar uf hello.jar HelloWorld.java

將HelloWorld.java添加到hello.jar包中
 
(6)創建不壓縮內容jar包:

?
1
jar cvf0 hello.jar *.class

利用當前目錄中所有的.class文件生成一個不壓縮jar包
 
(7)創建帶manifest.mf文件的jar包:

?
1
jar cvfm hello.jar manifest.mf hello

創建的jar包多了一個META-INF目錄,META-INF止錄下多了一個manifest.mf文件,至于manifest.mf的作用,后面會提到.
 
(8)忽略manifest.mf文件:

?
1
jar cvfM hello.jar hello

生成的jar包中不包括META-INF目錄及manifest.mf文件
 
(9)加-C應用:

?
1
jar cvfm hello.jar mymanifest.mf -C hello/

表示在切換到hello目錄下然后再執行jar命令
 
(10)-i為jar文件生成索引列表:

當一個jar包中的內容很好的時候,你可以給它生成一個索引文件,這樣看起來很省事。

?
1
jar i hello.jar

執行完這條命令后,它會在hello.jar包的META-INF文件夾下生成一個名為INDEX.LIST的索引文件,它會生成一個列表,最上邊為jar包名。
 
(11)導出解壓列表:

jar tvf hello.jar >hello.txt   如果你想查看解壓一個jar的詳細過程,而這個jar包又很大,屏幕信息會一閃而過,這時你可以把列表輸出到一個文件中,慢慢欣賞!
 
 (12)jar -cvf hello.jar hello/*

   例如原目錄結構如下:
   hello
     |---com
     |---org
 
你本想只把com目錄和org目錄打包,而這時jar命令會連同hello目洋也一塊打包進。這點大家要注意。jar命令生成的壓縮文件會包含它后邊出的目錄。我們應該進入到hello目錄再執行jar命令。
 
注意:manifest.mf這個文件名,用戶可以任指定,但jar命令只認識Manifest.mf,它會對用戶指定的文件名進行相應在的轉換,這不需用戶擔心。
 
三.Manifest.mf文件編寫規則:
 
 manifest.mf的編寫一定要注意一些細節,它是很苛刻的,我在此也載過不少跟頭,誰讓它這么小氣呢,沒辦法,所以專門給大家列出來。
 
(1) 不能有空行和空格的地方
    第一行不可以是空行( 第一行的行前不可以有空行),行與行之間不能有空行,第行的行尾不可以有空格
(2) 一定要有空行的地方
最后一行得是空行(在輸完你的內容后加一個回車就OK)

(3) 一定有空格的地方
     key: value       在分號后面一定要寫寫一個空格
 
四.怎樣使用jar包中的類
 
還是寫個小例子吧,這樣直觀!

?
1
2
3
4
5
6
7
public final class Person
{
   public static int age()
   {
   return 30;
   }
}
?
1
2
-> javac Person.java
->jar cvf person.jar Person.class

將上面的文件打成一個jar包
 
再寫一個類對其進行調用:

?
1
2
3
4
5
6
7
public class MyAge
{
      public static void getAge()
   {
         System.out.println(Person.age());
      }
}
?
1
2
->javac MyAge.java
 ->java -classpath person.jar MyAge

 
感興趣的讀者可以調試一下這個程序

五.創建可執行jar包

 有時自己寫個程序,類一大堆,時間一長連自己都不知道那個是主類,而且有可能用到圖片或其它文件一大堆,看得也亂,這時你可以考慮把它做成一個可執行jar包...
 
(1) 編輯manifest.mf文件加入下面一行

?
1
Main-Class: MyApplet

注意:Main-Class的大小定,冒號后的空格,MyApplet后一定輸入回車,然后保存。

(2) 打包

?
1
jar cvfm FirstApplet.jar manifest.mf MyApplet.class

注意:manifest.mf指定為存放Mani-Class: MyApplet文件的class路徑(如:hello.Hello)或者文件名(applet)

(3) 可執行jar的使用

?
1
java -jar FirstApplet.jar

也可以<applet></applet>中使用:

?
1
2
<applet code=MyApplet archive=FirstApplet.jar width=200 height=100>
</applet>

注意:類并沒有給出,大家隨便寫一個就行,類名包名自己隨意定,相應的更改就可以...
 
六.擴展自己的類
 
在JDK的安裝目錄\jre\lib\ext目錄下,SUN為大家為我們擴展自己類的提供了方便,大家可以將自己的類文件打成.jar包放在此目錄下,它由ExtClassLoader類裝器負責進行裝載,ExtClassLoader類裝器是AppClassLoader類裝載器的父裝載器,AppClassLoader主要負責加載CLASSPATH路徑下的文件,而在java中采用的又是委托父裝載器的機制,所以此目錄下存放的jar中的類文件不做任何的設置,類裝載器就可以找到正常的加載,是不是很方便啊,呵...
 
如果你的.jar是給applet小應用程序看的,可以在打成jar包之前,在其manifest.mf加入下面兩行。

?
1
2
3
Class-Path: FirstApplet.jar
Class-path: SecondApplet.jar
Main-Class: MyApplet

注意:Class-path可以設置多項,直接寫jar包名既可。Main-Class主要當jar中有多個.class類文件時,java并不知道那個才是主類,所以要指定,如果jar包中只有一個類當然可以不指定。
 
Java調用類的順序:java\lib\ext中的類--->Manifest.mf中指定的類-->當前目錄中的類-->set CLASSPATH中指定的類。
 
七.調用URL網絡上的jar包
 
(1) 生成jar包的URL
   

?
1
URL u=new URL("jar:"+"FirstAppplet.jar"+!/");

 
(2) 建立jarURLConnection對象
   

?
1
JarURLConnection juc=(JarURLConnection)u.openConnection();

 
(3) 返回jar包中主類的名字

?
1
2
Attributes attr=juc.getMainAttributes();
String name=attr.getValue("Mani-Class");

 
一定要確保你的jar包中的manifest.mf中已正確的設置了Mani-Class屬性,再強調一下一定要注意規則。
 
(4) 根據得到的主類名創建Class對象
   

?
1
Class c=Class.forName(name);

(5) 根據Class對象調用其main方法:

?
1
2
Method cm=c.getMethod("main",new Class[]{String.class});
  cm.invoke(null,new Object[]{});

 
提示:上邊用到了Reflection反射機制的相關知識,大家如果多反射機制有興趣,可查看java.lang.reflect包中的相關內容.
 
八.JAR命令使用技巧:
 
(1) jar創建壓ZIP文件

?
1
jar cvfM TestZIP.jar test

      加M參數為了不生成META-INF相關內容
然后將TestZIP.jar改為TestZIP.zip就可以,是不是很簡單....

(2) 使用WinRAR解壓.jar文件

上邊我們已經說過了,說JAR文件是一種特殊的壓縮文件,所以它當然可以用我們常用的一些解壓     縮工具來解了,至于怎么解,這就不用我說了吧。

(3) 用WinRAR生成.jar文件

我們已經說過JAR包與ZIP包主要區別就是JAR包中多一個META-INF的目錄,META-INF目錄下有一個manifest.mf文件,我們只要建立好相關的目錄一壓縮就可以了。
目錄的結構如下:

      TestJar
          |--META-INF
                |--manifest.mf
          |--相關的類文件

延伸 · 閱讀

精彩推薦
314
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美精品一区二区视频 | 国产福利在线视频 | 91精品国产综合久久福利软件 | 日韩av一区二区在线观看 | 精品国产成人 | 久久久99精品免费观看 | 日韩在线视频观看 | 91婷婷射| 欧美成人视屏 | 国产真实精品久久二三区 | 成人片在线播放 | 欧美日韩中文字幕 | 精精国产xxxx视频在线播放7 | 欧美精品第一页 | 亚洲男人天堂2023 | 91精品国产综合久久小仙女陆萱萱 | 毛片真人毛毛片毛片 | 国产精品三级久久久久久电影 | 成人午夜视频在线观看 | 8888色大全| a免费网站 | 日韩视频在线观看 | 97人人看| 日韩中文视频 | 欧美日韩中文字幕 | 91新视频 | 亚洲精品无 | 午夜精品一区二区三区在线播放 | 午夜操操操 | 91久久综合亚洲鲁鲁五月天 | 国产精品视频成人 | 国产欧美精品一区二区三区四区 | 成人午夜免费视频 | 国产精品视频入口 | 成人激情视频 | 久久草在线视频 | 国产精品久久久久久亚洲调教 | 亚洲一级黄色 | 日韩性视频 | 欧美成人久久久免费播放 | 久久久久久久久久久久福利 |