程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java生成jar包的辦法

java生成jar包的辦法

編輯:關於JAVA

java生成jar包的辦法。本站提示廣大學習愛好者:(java生成jar包的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是java生成jar包的辦法正文


本文實例講述了java生成jar包的辦法,長短常適用的技能。分享給年夜家供年夜家參考。詳細剖析以下:

許多Java初學者都邑有如許的疑問:Java編寫的application法式能否可以或許終究構成一個相似於exe一樣的可履行文件,豈非就只能用敕令交運行?

平日來講有兩種辦法,一種是制造一個可履行的JAR文件包,然後便可以像.chm文檔一樣雙擊運轉了;而另外一種是應用JET來停止編譯。然則JET是要用錢買的,並且聽說JET也不是能把一切的Java法式都編譯成履行文件,機能也要打些扣頭。所以,應用制造可履行JAR 文件包的辦法就是最好選擇了,況且它還能堅持Java的跨平台特征。

上面就來看看甚麼是JAR文件包吧:

1. JAR文件包

JAR文件就是Java Archive File,顧名思意,它的運用是與Java互相關注的,是Java的一種文檔格局。JAR文件異常相似ZIP文件——精確的說,它就是ZIP文件,所以叫它文件包。JAR文件與ZIP文件獨一的差別就是在JAR文件的內容中,包括了一個META-INF/MANIFEST.MF文件,這個文件是在生成JAR文件的時刻主動創立的。舉個例子,假如我們具有以下目次構造的一些文件:
  ==
-- test
-- Test.class
把它緊縮成ZIP文件test.zip,則這個ZIP文件的外部目次構造為:
  test.zip
  `-- test
    `-- Test.class

假如我們應用JDK的jar敕令把它打成JAR文件包test.jar,則這個JAR文件的外部目次構造為:
 test.jar
  |-- META-INF
  |  `-- MANIFEST.MF
  `-- test
    `--Test.class

2. 創立可履行的JAR文件包

制造一個可履行的JAR文件包來宣布你的法式是JAR文件包最典范的用法。

Java法式是由若干個.class文件構成的。這些.class文件必需依據它們所屬的包分歧而分級分目次寄存;運轉前須要把一切用到的包的根目次指定給CLASSPATH情況變量或許java敕令的-cp參數;運轉時還要到掌握台下去應用java敕令來運轉,假如須要直接雙擊運轉必需寫Windows的批處置文件(.bat)或許Linux的Shell法式。是以,很多人說,Java是一種便利開辟者苦了用戶的法式設計說話。

其實否則,假如開辟者可以或許制造一個可履行的JAR文件包交給用戶,那末用戶應用起來就便利了。在Windows下裝置JRE(Java Runtime Environment)的時刻,裝置文件會將.jar文件映照給javaw.exe翻開。那末,關於一個可履行的JAR文件包,用戶只須要雙擊它便可以運轉法式了,和浏覽.chm文檔一樣便利(.chm 文檔默許是由hh.exe翻開的)。那末,如今的症結,就是若何來創立這個可履行的JAR文件包。

創立可履行的JAR文件包,須要應用帶cvfm參數的jar敕令,異樣以上述test目次為例,敕令以下:

jar cvfm test.jar manifest.mf test 

這裡test.jar和manifest.mf兩個文件,分離是對應的參數f和m,其重頭戲在manifest.mf。由於要創立可履行的JAR文件包,光靠指定一個manifest.mf文件是不敷的,由於MANIFEST是JAR文件包的特點,可履行的JAR文件包和弗成履行的JAR文件包都包括MANIFEST。症結在於可履行JAR文件包的MANIFEST,其內容包括了 Main-Class一項。這在MANIFEST中書寫格局以下:

Main-Class: 可履行主類全名(包括包名) 

例如,假定上例中的Test.class是屬於test包的,並且是可履行的類(界說了 public static void main(String[]) 辦法),那末這個manifest.mf可以編纂以下:

Main-Class: test.Test <回車> 

這個manifest.mf可以放在任何地位,也能夠是其它的文件名,只須要有Main-Class: test.Test 一行,且該行以一個回車符停止便可。創立了manifest.mf文件以後,我們的目次構造變成:
  ==
   |-- test
   |  `-- Test.class
  `-- manifest.mf

這時候候,須要到test目次的下級目次中去應用jar敕令來創立JAR文件包。也就是在目次樹中應用“==”表現的誰人目次中,應用以下敕令:

jar cvfm test.jar manifest.mf test 

以後在“==”目次中創立了test.jar,這個test.jar就是履行的JAR文件包。運轉時只須要應用java -jar test.jar 敕令便可。

須要留意的是,創立的JAR文件包中須要包括完全的、與Java法式的包構造對應的目次構造,就像上例一樣。而 Main-Class 指定的類,也必需是完全的、包括包途徑的類名,如上例的test.Test;並且在沒有打成JAR文件包之前可使用java <類名> 來運轉這個類,即在上例中 java test.Test 是可以准確運轉的 (固然要在 CLASSPATH 准確的情形下)。

願望本文所述對年夜家的Java法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved