有不少朋友問(wèn)我怎么樣生成jar文件,為什么我的jar文件可以雙擊執(zhí)行,每次我都會(huì)解釋,我生成的jar是在JBuilder中完成的,但仍有人希望知道如何使用命令行生成jar文件,因此,我特地抽點(diǎn)時(shí)間來(lái)整理一下jar的命令行用法。
JAR 是JavaTM Archive file的縮寫(xiě),jar可將多個(gè)文件打包在一個(gè)文件中進(jìn)行發(fā)布。通常,jar文件中會(huì)包含多個(gè)類(lèi)文件和程序運(yùn)行時(shí)所需要的資源文件,使用jar文件有以下好處:
以上不一而足,具體可以參看http://java.sun.com/docs/books/tutorial/jar/。
生成jar文件
在命令行下生成jar文件需要使用jar命令,在命令行方式下輸入jar,可以看到:
jar的生成并不復(fù)雜,上面已經(jīng)說(shuō)得很清楚了,只不過(guò)需要注意的是,在生成jar文件后,需要注意包內(nèi)的文件組織結(jié)構(gòu)的正確性,以“連連看”游戲為例子,下載后的文件為Kyodai.jar,如果使用winrar等工具解開(kāi)該文件,可以發(fā)現(xiàn),其文件的組織結(jié)構(gòu)為:
和我在寫(xiě)程序的時(shí)候的結(jié)構(gòu)是一模一樣的,現(xiàn)在,將解開(kāi)的文件再生成jar文件,可以使用如下命令:
(以上去掉了參數(shù)v,.表示當(dāng)前文件夾下的所有文件)
生成可執(zhí)行的jar
上面,我們已經(jīng)生成了jar,然而,該程序還無(wú)法通過(guò)雙擊執(zhí)行,程序報(bào)錯(cuò):
這是由于java并不知道在這個(gè)jar包中,需要執(zhí)行的是哪一個(gè)class文件,因此,我們需要指定雙擊時(shí)執(zhí)行的類(lèi)文件哪個(gè)。
因此,我們?cè)俳⒁粋€(gè)“MANIFEST.MF”,在里面寫(xiě)上如下內(nèi)容:
第一行指明了該jar文件的版本號(hào),第二行Main-Class表示可執(zhí)行的類(lèi)文件為kyodai.Kyodai(這和在命令行方式下使用 java kyodai.Kyodai執(zhí)行該程序一樣),然后,再建立一個(gè)META-INF文件夾,將MANIFEST.MF文件copy進(jìn)去,最后,再將META-INF打包到該jar文件中,這樣,一個(gè)可執(zhí)行的jar文件就生成了。
常見(jiàn)問(wèn)題
有些朋友由于在安裝winrar等壓縮軟件時(shí),jar文件會(huì)被其類(lèi)程序所關(guān)聯(lián),因此,雙擊時(shí)并不會(huì)執(zhí)行jar程序,而是調(diào)用此類(lèi)軟件來(lái)打開(kāi)jar文件,碰到這種情況,將文件的關(guān)聯(lián)去掉即可。
聯(lián)系客服