亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > Java > 正文

怎樣制作可執(zhí)行的java程序

2024-07-21 02:39:02
字體:
供稿:網(wǎng)友

  經(jīng)常在網(wǎng)上看到有人詢問:如何把java程序編譯成.exe文件。通?;卮鹬挥袃煞N,一種是制作一個(gè)可執(zhí)行的JAR文件包,然后就可以像.chm文檔一樣雙擊運(yùn)行了;而另一種是使用JET來進(jìn)行
  編譯。但是JET是要用錢買的,而且據(jù)說JET也不是能把所有的Java程序都編譯成執(zhí)行文件,性能也要打些折扣。所以,使用制作可執(zhí)行JAR文件包的方法就是最佳選擇了,何況它還能保持Java的跨平臺特性。
  
  下面就來看看什么是JAR文件包吧:
  
  1.JAR文件包
  JAR文件就是JavaArchiveFile,顧名思意,它的應(yīng)用是與Java息息相關(guān)的,是Java的一種文檔格式。JAR文件非常類似Zip文件--準(zhǔn)確的說,它就是ZIP文件,所以叫它文件包。JAR文件與ZIP文件唯一的區(qū)別就是在JAR文件的內(nèi)容中,包含了一個(gè)META-INF/MANIFEST.MF文件,這個(gè)文件是在生成JAR文件的時(shí)候自動(dòng)創(chuàng)建的。舉個(gè)例子,假如我們具有如下目錄結(jié)構(gòu)的一些文件:
  
  ==
  
  `--test
  
  `--Test.class
  
  把它壓縮成ZIP文件test.zip,則這個(gè)ZIP文件的內(nèi)部目錄結(jié)構(gòu)為:
  
  test.zip
  
  `--test
  
  `--Test.class
  
  假如我們使用JDK的jar命令把它打成JAR文件包test.jar,則這個(gè)JAR文件的內(nèi)部目錄結(jié)構(gòu)為:
  
  test.jar
  
  --META-INF
  
   `--MANIFEST.MF
  
  `--test
  
  `--Test.class
  
  2.創(chuàng)建可執(zhí)行的JAR文件包
  制作一個(gè)可執(zhí)行的JAR文件包來發(fā)布你的程序是JAR文件包最典型的用法。
  
  Java程序是由若干個(gè).class文件組成的。這些.class文件必須根據(jù)它們所屬的包不同而分級分目錄存放;運(yùn)行前需要把所有用到的包的根目錄指定給CLASSPATH環(huán)境變量或者java命令的-cp參數(shù);運(yùn)行時(shí)還要到控制臺下去使用java命令來運(yùn)行,假如需要直接雙擊運(yùn)行必須寫Windows的批處理文件(.bat)或者linux的Shell程序。因此,許多人說,Java是一種方便開發(fā)者苦了用戶的程序設(shè)計(jì)語言。
  
  其實(shí)不然,假如開發(fā)者能夠制作一個(gè)可執(zhí)行的JAR文件包交給用戶,那么用戶使用起來就方便了。在Windows下安裝JRE(JavaRuntimeEnvironment)的時(shí)候,安裝文件會(huì)將.jar文件映射給javaw.exe打開。那么,對于一個(gè)可執(zhí)行的JAR文件包,用戶只需要雙擊它就可以運(yùn)行程序了,和閱讀.chm文檔一樣方便(.chm文檔默認(rèn)是由hh.exe打開的)。那么,現(xiàn)在的要害,就是如何來創(chuàng)建這個(gè)可執(zhí)行的JAR文件包。
  
  創(chuàng)建可執(zhí)行的JAR文件包,需要使用帶cvfm參數(shù)的jar命令,同樣以上述test目錄為例,命令如下:
  
  jarcvfmtest.jarmanifest.mftest
  
  這里test.jar和manifest.mf兩個(gè)文件,分別是對應(yīng)的參數(shù)f和m,其重頭戲在manifest.mf。因?yàn)橐獎(jiǎng)?chuàng)建可執(zhí)行的JAR文件包,光靠指定一個(gè)manifest.mf文件是不夠的,因?yàn)镸ANIFEST是JAR文件包的特征,可執(zhí)行的JAR文件包和不可執(zhí)行的JAR文件包都包含MANIFEST。要害在于可執(zhí)行JAR文件包的MANIFEST,其內(nèi)容包含了Main-Class一項(xiàng)。這在MANIFEST中書寫格式如下:
  
  Main-Class:可執(zhí)行主類全名(包含包名)
  
  例如,假設(shè)上例中的Test.class是屬于test包的,而且是可執(zhí)行的類(定義了publicstaticvoidmain(String[])方法),那么這個(gè)manifest.mf可以編輯如下:
  
  Main-Class:test.Test<回車>
  
  這個(gè)manifest.mf可以放在任何位置,也可以是其它的文件名,只需要有Main-Class:test.Test一行,且該行以一個(gè)回車符結(jié)束即可。創(chuàng)建了manifest.mf文件之后,我們的目錄結(jié)構(gòu)變?yōu)椋?br />  
  ==
  
  test
  
  Test.class
  
  manifest.mf
  
  這時(shí)候,需要到test目錄的上級目錄中去使用jar命令來創(chuàng)建JAR文件包。也就是在目錄樹中使用“==”表示的那個(gè)目錄中,使用如下命令:
  
  jarcvfmtest.jarmanifest.mftest
  
  之后在“==”目錄中創(chuàng)建了test.jar,這個(gè)test.jar就是執(zhí)行的JAR文件包。運(yùn)行時(shí)只需要使用java-jartest.jar命令即可。
  
  需要注重的是,創(chuàng)建的JAR文件包中需要包含完整的、與Java程序的包結(jié)構(gòu)對應(yīng)的目錄結(jié)構(gòu),就像上例一樣。而Main-Class指定的類,也必須是完整的、包含包路徑的類名,如上例的test.Test;而且在沒有打成JAR文件包之前可以使用java<類名>來運(yùn)行這個(gè)類,即在上例中javatest.Test是可以正確運(yùn)行的(當(dāng)然要在CLASSPATH正確的情況下)。
  
  3.jar命令詳解
  jar是隨JDK安裝的,在JDK安裝目錄下的bin目錄中,Windows下文件名為jar.exe,Linux下文件名為jar。
它的運(yùn)行需要用到JDK安裝目錄下lib目錄中的tools.jar文件。不過我們除了安裝JDK什么也不需要做,因?yàn)镾UN已經(jīng)幫我們做好了。我們甚至不需要將tools.jar放到CLASSPATH中。
  
  使用不帶任何的jar命令我們可以看到j(luò)ar命令的用法如下:
  
  jar{ctxu}[vfm0M][jar-文件][manifest-文件][-C目錄]文件名...
  
  其中{ctxu}是jar命令的子命令,每次jar命令只能包含ctxu中的一個(gè),它們分別表示:
  
  -c 創(chuàng)建新的JAR文件包
  
  -t 列出JAR文件包的內(nèi)容列表
  
  -x 展開JAR文件包的指定文件或者所有文件
  
  -u 更新已存在的JAR文件包(添加文件到JAR文件包中)
  
  [vfm0M]中的選項(xiàng)可以任選,也可以不選,它們是jar命令的選項(xiàng)參數(shù)
  
  -v 生成具體報(bào)告并打印到標(biāo)準(zhǔn)輸出
  
  -f 指定JAR文件名,通常這個(gè)參數(shù)是必須的
  
  -m 指定需要包含的MANIFEST清單文件
  
  -0 只存儲,不壓縮,這樣產(chǎn)生的JAR文件包會(huì)比不用該參數(shù)產(chǎn)生的體積大,但速度更快
  
  -M 不產(chǎn)生所有項(xiàng)的清單(MANIFEST〕文件,此參數(shù)會(huì)忽略-m參數(shù)
  
  [jar-文件]即需要生成、查看、更新或者解開的JAR文件包,它是-f參數(shù)的附屬參數(shù)
  
  [manifest-文件]即MANIFEST清單文件,它是-m參數(shù)的附屬參數(shù)
  
  [-C目錄]表示轉(zhuǎn)到指定目錄下去執(zhí)行這個(gè)jar命令的操作。它相當(dāng)于先使用cd命令轉(zhuǎn)該目錄下再執(zhí)行不帶-C參數(shù)的jar命令,它只能在創(chuàng)建和更新JAR文件包的時(shí)候可用。
  
  文件名...指定一個(gè)文件/目錄列表,這些文件/目錄就是要添加到JAR文件包中的文件/目錄。假如指定了目錄,那么jar命令打包的時(shí)候會(huì)自動(dòng)把該目錄中的所有文件和子目錄打入包中。
  
  下面舉一些例子來說明jar命令的用法:
  
  1)jarcftest.jartest
  
  該命令沒有執(zhí)行過程的顯示,執(zhí)行結(jié)果是在當(dāng)前目錄生成了test.jar文件。假如當(dāng)前目錄已經(jīng)存在test.jar,那么該文件將被覆蓋。
  
  2)jarcvftest.jartest
  
  該命令與上例中的結(jié)果相同,但是由于v參數(shù)的作用,顯示出了打包過程,如下:
  
  標(biāo)明清單(manifest)
  
  增加:test/(讀入=0)(寫出=0)(存儲了0%)
  
  增加:test/Test.class(讀入=7)(寫出=6)(壓縮了14%)
  
  3)jarcvfMtest.jartest
  
  該命令與2)結(jié)果類似,但在生成的test.jar中沒有包含META-INF/MANIFEST文件,打包過程的信息也略有差別:
  
  增加:test/(讀入=0)(寫出=0)(存儲了0%)
  
  增加:test/Test.class(讀入=7)(寫出=6)(壓縮了14%)
  
  4)jarcvfmtest.jarmanifest.mftest
  
  運(yùn)行結(jié)果與2)相似,顯示信息也相同,只是生成JAR包中的META-INF/MANIFEST內(nèi)容不同,是包含了manifest.mf的內(nèi)容
  
  5)jartftest.jar
  
  在test.jar已經(jīng)存在的情況下,可以查看test.jar中的內(nèi)容,如對于2)和3)生成的test.jar分別應(yīng)該此命令,結(jié)果如下;
  
  對于2)
  
  META-INF/
  
  META-INF/MANIFEST.MF
  
  test/
  
  test/Test.class
  
  對于3)
  
  test/
  
  test/Test.class
  
  6)jartvftest.jar
  
  除顯示5)中顯示的內(nèi)容外,還包括包內(nèi)文件的具體信息,如:
  
  0WedJun1915:39:06GMT2002META-INF/
  
  86WedJun1915:39:06GMT2002META-INF/MANIFEST.MF
  
  0WedJun1915:33:04GMT2002test/
  
  7WedJun1915:33:04GMT2002test/Test.class
  
  7)jarxftest.jar
  
  解開test.jar到當(dāng)前目錄,不顯示任何信息,對于2)生成的test.jar,解開后的目錄結(jié)構(gòu)如下:
  
  ==
  
  --META-INF
  
   `--MANIFEST
  
  `--test
  
  `--Test.class
  
  8)jarxvftest.jar
  
  運(yùn)行結(jié)果與7)相同,對于解壓過程有具體信息顯示,如:
  
  創(chuàng)建:META-INF/
  
  展開:META-INF/MANIFEST.MF
  
  創(chuàng)建:test/
  
  展開:test/Test.class
  
  9)jaruftest.jarmanifest.mf
  
  在test.jar中添加了文件manifest.mf,此使用jartf來查看test.jar可以發(fā)現(xiàn)test.jar中比原來多了一個(gè)manifest。這里順便提一下,假如使用-m參數(shù)并指定manifest.mf文件,那么manifest.mf是作為清單文件MANIFEST來使用的,它的內(nèi)容會(huì)被添加到MANIFEST中;但是,假如作為一般文件添加到JAR文件包中,它跟一般文件無異。

  
  10)jaruvftest.jarmanifest.mf
  
  與9)結(jié)果相同,同時(shí)有具體信息顯示,如:
  
  增加:manifest.mf(讀入=17)(寫出=19)(壓縮了-11%)
  
  4.關(guān)于JAR文件包的一些技巧
  1)使用unzip來

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
精品国产乱码久久久久久蜜坠欲下| 久久青青草原一区二区| 精品国产乱码久久久久久1区二区| 九九九在线观看视频| 亚洲乱码精品一二三四区日韩在线| 亚洲欧美日本一区二区| 欧美丰满老妇熟乱xxxxyyy| 超碰在线资源站| 最好看的2019年中文视频| 图片区小说区区亚洲影院| 一本一本久久a久久精品综合麻豆| 国产精品99久久久久| 日韩精品欧美激情| 国内外成人免费激情视频| 国内视频自拍在线视频| 在线观看亚洲欧美| 毛片av在线播放| 国产91精品久久久久久| 黄色av网址在线观看| 9999精品| www.亚洲天堂.com| 免费偷拍视频网站| 天堂社区在线视频| 亚洲av少妇一区二区在线观看| www.亚洲男人天堂| 久久影院资源站| 日韩二区三区在线观看| 免费日韩一区二区| 手机av在线网| av网站免费观看| 精品免费在线观看| 在线午夜精品自拍| 无码精品一区二区三区在线| 久久人人爽爽爽人久久久| 91 com成人网| 福利av在线| 中文字幕日产av一二三区| 日韩女优毛片在线| 国产成人+综合亚洲+天堂| 麻豆国产欧美一区二区三区| 成人黄色在线| 亚洲va久久久噜噜噜久久| 四虎精品一区二区永久在线观看| 综合久久精品| 大又大又粗又硬又爽少妇毛片| 亚洲第一欧美| 国产无遮挡免费视频| 夜夜嗨av色综合久久久综合网| av在线网站观看| 欧美综合另类| 国产99久久精品一区二区| 日本中文字幕免费在线观看| 国产精品xxx| 日韩在线视频播放| 91超薄肉色丝袜交足高跟凉鞋| 欧美hentaied在线观看| 天天插天天射天天干| 免费观看亚洲天堂| 超碰成人免费| 亚洲第一网中文字幕| 国内精品卡一卡二卡三| 亚洲视频一区二区| 国产精品免费人成网站| proumb性欧美在线观看| 中国成人亚色综合网站| 911精品国产| 欧美日韩免费做爰视频| aaaaa级少妇高潮大片免费看| 久久久久久久久久久久久久| 欧美精品一区在线观看| 日本高清不卡一区二区三| 国产亚洲精品美女久久久久| 蜜桃视频无码区在线观看| 国产精品久久久久久久久久尿| 国产一区二区精品久久| 理论视频在线观看| 亚洲一区欧美在线| 一本一道久久综合狠狠老精东影业| 国产美女情趣调教h一区二区| 一区二区中文字幕| 久热在线中文字幕色999舞| 天天操天天操天天干| 成人性生交大片免费看网站| 免费观看亚洲视频大全| www.xxx黄| 久久99久久久久久久噜噜| 制服丝袜在线第一页| 欧美体内she精视频在线观看| 国内外成人激情免费视频| av小说在线| 99在线精品视频在线观看| 中文字幕国产精品| 成人免费观看a| 日本成人三级电影| 欧美xxxx在线观看| 黄色一区二区在线观看| 免费成人在线看| 欧美高清视频一区二区三区在线观看| 蜜臀av中文字幕| 免费在线欧美视频| 中文字幕永久视频| …久久精品99久久香蕉国产| 久久精品亚洲天堂| xx免费视频| 好吊一区二区三区视频| 在线电影一区| 国产精品一卡二| 91在线高清免费观看| 国产乱码精品一区二区三区日韩精品| 人妻少妇被粗大爽9797pw| 91精品丝袜国产高跟在线| 99re视频在线观看| 中文字幕在线视频久| 成人欧美一区二区三区| 99久久精品一区二区三区| 国产日韩欧美一区二区| 国产亚洲毛片在线| 成人蜜桃视频| 久久99深爱久久99精品| h在线观看视频免费网站| 国产精品久久久久久久av电影| 热三久草你在线| 2021av在线| 成人免费高清在线观看| 国产精品99久久久久久久vr| 国产艳妇疯狂做爰视频| 久久青青色综合| 涩涩在线视频| 日韩一级大片在线观看| 欧美另类69xxxxx| 免费视频91蜜桃| 天天噜噜噜噜噜噜| 99热这里只有精品2| 青青草成人网| 欧美一区二区精美| 动漫黄在线观看| 99鲁鲁精品一区二区三区| 亚洲成人av综合| 91国产视频在线| 日韩在线中文| 天堂社区日本电影超碰| 天天天天天天天干| 99视频在线看| 亚洲av无码国产综合专区| 国产成人精品久久久| 国产香蕉视频在线看| 国产日韩一区二区在线| 一区二区三区欧美视频| 激情91久久| 国产亚洲精彩久久| 天天操天天操天天干| 国产一区二区精品丝袜| 国产视频1区2区3区| 欧美第一页浮力影院| 亚洲激情自拍偷拍| 日韩国产一级片| 国产伦精品一区二区三区在线观看| 亚洲欧美日韩不卡| 国产绿帽刺激高潮对白| 污视频在线观看网站| 国产成人av电影免费在线观看| 另类图片国产| 伊人色**天天综合婷婷| 中文在线字幕免费观看| 国产三级精品三级在线观看| 欧美性videos高清精品| 尤物网址在线观看| 不卡的av一区| 97久久综合精品久久久综合| 青青青手机在线视频| 青青青免费在线视频| 91成人免费网站| 国产精品伦一区二区三级视频| 色播在线观看| 91九色精品| 国产日韩欧美影视| 天堂在线观看一卡二卡三卡四卡| 波多野结衣精品| 国产视频一区免费看| 日韩欧美在线影院| 不卡av电影在线播放| 国产小视频一区| 欧美日韩不卡中文字幕在线| 18成人在线视频| 伊人在我在线看导航| 国产精品一区二区三区四区色| 99热只有这里有精品| 91tv精品福利国产在线观看| 免费看成人人体视频| www久久久| 免费观看一级欧美片| 91av在线视频观看| av在线三区| 男人操女人的视频在线观看欧美| 色八戒一区二区三区| 国模精品一区二区| 加勒比av一区二区| 日韩视频在线免费看| 大j8黑人w巨大888a片| 紧缚奴在线一区二区三区| 日韩电视剧免费观看网站| av鲁丝一区鲁丝二区鲁丝三区| 91美剧网在线播放| 麻豆精品精品国产自在97香蕉| 1024手机在线观看你懂的| 久久精品影视大全| 国精产品999国精产品官网| 国产美女作爱全过程免费视频| 国产欧美精品在线| 久久精品最新免费国产成人| 欧美性猛交xxxxbbb| 暗呦丨小u女国产精品| 亚洲一二三区不卡| 亚洲第一精品电影| 免费看一级一片| 国产8mav视频| 国产三级av在线| 日韩欧美国产综合在线一区二区三区| 天天插天天射天天干| 波多野结衣中文字幕久久| a毛片在线播放| 亚洲国产成人二区| 亚洲美女少妇无套啪啪呻吟| 中文字幕一区二区三区在线乱码| 久久你懂得1024| 伦av综合一区| 在线观看国产一区二区三区| 日韩在线观看免费av| www.久久久久久久| 麻豆精品视频在线原创| 中文字幕在线久热精品| 国精品无码一区二区三区| 欧美色图首页| 国产欧美日韩三区| 97在线播放免费观看| 999久久久精品一区二区| 久久日本片精品aaaaa国产| xxx一区二区| 亚洲精选一区二区三区| 亚洲精品一区二区妖精| 91免费国产精品| 97dyy97影院理论片在线| 久久久久亚洲AV成人| 特黄特色大片免费视频大全| 我不卡伦不卡影院| 蜜桃传媒麻豆第一区在线观看| 手机av在线免费| 国产一级二级av| 在线视频日本亚洲性| 91黄色8090| 国产一区二区精品在线| 三级在线视频观看| 亚洲色图一区二区| 日韩国产一区久久| 久久久99精品免费观看| 国产福利在线播放| 欧美第一淫aaasss性| 欧洲亚洲一区| 国产成人在线视频免费播放| 黄页视频在线播放| 国产亚洲视频中文字幕视频| 99热久久这里只有精品| 99福利在线| 中文字幕一区在线| 国产亚洲美州欧州综合国| 日韩欧美亚洲国产另类| 日韩一级二级| 婷婷成人在线| 色偷偷888欧美精品久久久| 999久久久久久久久6666| 中文字幕日韩在线观看| 欧美少妇一区二区| 亚洲欧美偷拍三级| 午夜久久久久久久久久| 久久6免费高清热精品| gogogo高清在线观看一区二区| 国产精品一区二区免费视频| 黄色网在线播放| 亚洲同性同志一二三专区| 影音先锋欧美激情| 在线日韩中文字幕| 麻豆av一区二区三区久久| 久草手机在线观看| 邻家有女韩剧在线观看国语| 成人在线观看免费视频| 亚洲十八**毛片| 日韩欧美一级二级三级久久久| 粉嫩av一区二区三区四区五区| 手机在线免费看片| 日本一区二区三区在线免费观看| 亚洲久久久久久| 色综合久久久久综合体桃花网| 成 人 黄 色 小说网站 s色| 国产在线视频精品一区| 欧美性受xxxx黑人xyx| 成人黄色视屏网站| 欧美—级a级欧美特级ar全黄| 四虎永久免费观看| 91超碰在线免费| 国产一区二区在线影院| a毛片不卡免费看片| 全程偷拍露脸中年夫妇| 国产一区二区黑人欧美xxxx| 国产成一区二区| 亚洲精品午夜视频| 日韩成人在线免费观看| 制服视频三区第一页精品| 日韩成人一区二区三区在线观看| 蜜桃av乱码一区二区三区| 茄子视频成人免费观看| 天堂av一区二区三区在线播放| 欧美被日视频| 2020日本不卡一区二区视频| 欧美一级大片视频| 99久久免费国产精精品| 国产一区二区中文字幕免费看| 九九久久综合网站| 欧美人与动性xxxxbbbb| 中文字幕资源在线观看| 国产成人a级片| 丰满岳乱妇一区二区| 国产天堂第一区| 4438x成人网全国最大| 欧美视频在线观看| 电影91久久久| 在线播放国产一区二区三区| 国产午夜精品久久久久免费视| 一本色道**综合亚洲精品蜜桃冫|