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法式設計有所贊助。