Java jar打包工具使用方法步驟解析
java的jar是一個(gè)打包工具,用于將我們編譯后的class文件打包起來(lái),這里面主要是舉一個(gè)例子用來(lái)說(shuō)明這個(gè)工具的使用。
在C盤下的temp文件夾下面:
有一個(gè)com.pack.surfront的package 這個(gè)package下面有一些已經(jīng)class文件如:Test1.class,Test2.class,Test3.class,其中Test1.class下有一個(gè)可執(zhí)行文件。
我們打開cmd,然后cd temp到temp文件夾下面,因?yàn)閏om.pack.surfront是包路徑,不需要再進(jìn)去然后再打包,打包的時(shí)候必須要把這個(gè)包也打進(jìn)去,否則的話打出來(lái)的包中的類將無(wú)法訪問(wèn)了。
進(jìn)去之后執(zhí)行命令:
jar cvf hello.jar com
然后按enter鍵即可,解釋一下,這個(gè)jar是jdk下的一個(gè)命令,然后cvf是三個(gè)參數(shù),在cmd下直接輸入jar即可參看一下這個(gè)命令的介紹,這里不說(shuō)這個(gè)(其實(shí)是我也沒查過(guò)!icon_lol.gif )
hello.jar是打出來(lái)的包的名稱,這個(gè)是可以隨便取的。com是那個(gè)包的頂端路徑。這個(gè)命令執(zhí)行完之后就會(huì)在temp路徑下面生成一個(gè)hello.jar文件,我們可以用rar解壓縮文件解壓他,可以看到其中有一個(gè)META-INF的目錄,該目錄下有一個(gè)MANIFEST.MF文件,打開該文件,可以看到
Manifest-Version: 1.0
Created-By: 1.6.0_26 (Sun Microsystems Inc.)
這兩行內(nèi)容,一般如果從外面引用這個(gè)jar里面的類和方法有這些就足夠了,但是我的Test1.class文件里面還有一個(gè)main方法,我想打完包之后可以執(zhí)行這個(gè)jar,那么還需要一些其他的配置,我們?cè)谏厦娴奈募?nèi)容中添加一行,添加完之后文件全部?jī)?nèi)容如下:
Manifest-Version: 1.0
Created-By: 1.6.0_26 (Sun Microsystems Inc.)
Main-Class: com.pack.surfront.Test1
第三行就是指定了一個(gè)主類,說(shuō)明該類中存在main方法,那么之后這個(gè)jar就可以執(zhí)行了。注意那一行一定要把完整的class文件的路徑寫全,不然會(huì)提示找不到該類的。
把這個(gè)文件改成這樣了之后把這個(gè)MANIFEST.MF文件拿出來(lái)放在temp目錄下面,然后把剛才生成的hello.jar和解壓后的其他文件全都刪除。然后重新打包一次
這時(shí)候temp目錄下面應(yīng)該是這樣的結(jié)構(gòu):原來(lái)的com文件夾,我們修改后的MANIFEST.MF文件,這時(shí)候在cmd下執(zhí)行:
jar cvfm hello.jar MANIFEST.MF com看出來(lái)有什么不同了沒?一個(gè)是將原來(lái)的cvf改成cvfm,然后再hello.jar后添加了一個(gè)MANIFEST.MF她的意思就是指打包的時(shí)候不再生成(m參數(shù)的功能)MANIFEST.MF文件,而是把我們指定的mf文件打包進(jìn)去。執(zhí)行這個(gè)命令之后就完事了。然后在cmd下面執(zhí)行:
java -jar hello.jar這個(gè)時(shí)候main方法就會(huì)執(zhí)行,如果他需要什么參數(shù)則直接放在后面即可。和直接執(zhí)行java Test 參數(shù) 是一樣的。OK,就到這里吧。如果如果覺得我說(shuō)的不好敬請(qǐng)留言拍磚@!icon_lol.gif
添加使用的jar包:
Class-Path: commons-beanutils.jar commons-collections.jar commons-digester.jar commons-logging.jar commons-validator.jar jakarta-oro.jar struts-legacy.jar
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JVM用寄存器實(shí)現(xiàn)程序計(jì)數(shù)
這篇文章主要介紹了JVM用寄存器實(shí)現(xiàn)程序計(jì)數(shù),JVM中的程序計(jì)數(shù)寄存器(Program Counter Register),Register的命名源于CPU的寄存器,寄存器存儲(chǔ)指令相關(guān)的現(xiàn)場(chǎng)信息。CPU只有把數(shù)據(jù)裝載到寄存器才能夠運(yùn)行2023-02-02
關(guān)于request.getRequestDispatcher().forward()的妙用及DispatcherType
這篇文章主要介紹了關(guān)于request.getRequestDispatcher().forward()的妙用及DispatcherType對(duì)Filter配置的影響,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Java Spring MVC 上傳下載文件配置及controller方法詳解
這篇文章主要介紹了Java Spring MVC 上傳下載文件配置及controller方法詳解,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
java設(shè)計(jì)模式學(xué)習(xí)之代理模式
這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式學(xué)習(xí)之代理模式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Java中Mybatis,SpringMVC,Spring的介紹及聯(lián)系
這篇文章主要為大家詳細(xì)介紹了Java中Mybatis,SpringMVC,Spring的介紹及聯(lián)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10

