• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        如何把java程序編譯成.exe文件(就是制作可執(zhí)行的JAR文件包)

        如何把java程序編譯成.exe文件(就是制作可執(zhí)行的JAR文件包)

        更新時(shí)間:2022-05-14 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        作者:邊城狂人

        常常在網(wǎng)上看到有人詢問:如何把 java 程序編譯成 .exe 文件。通常回答只有兩種,一種是制作一個(gè)可執(zhí)行的 JAR 文件包,然后就可以像.chm 文檔一樣雙擊運(yùn)行了;而另一種是使用 JET 來進(jìn)行
        編譯。但是 JET 是要用錢買的,而且據(jù)說 JET 也不是能把所有的 Java 程序都編譯成執(zhí)行文件,性能也要打些折扣。所以,使用制作可執(zhí)行 JAR 文件包的方法就是最佳選擇了,何況它還能保持 Java 的跨平臺特性。

        下面就來看看什么是 JAR 文件包吧:

        1. JAR 文件包

        JAR 文件就是 Java Archive File,顧名思意,它的應(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 (Java Runtime Environment) 的時(shí)候,安裝文件會將 .jar 文件映射給 javaw.exe 打開。那么,對于一個(gè)可執(zhí)行的 JAR 文件包,用戶只需要雙擊它就可以運(yùn)行程序了,和閱讀 .chm 文檔一樣方便 (.chm 文檔默認(rèn)是由 hh.exe 打開的)。那么,現(xiàn)在的關(guān)鍵,就是如何來創(chuàng)建這個(gè)可執(zhí)行的 JAR 文件包。

        創(chuàng)建可執(zhí)行的 JAR 文件包,需要使用帶 cvfm 參數(shù)的 jar 命令,同樣以上述 test 目錄為例,命令如下:

        jar cvfm test.jar manifest.mf test

        這里 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)?MANIFEST 是 JAR 文件包的特征,可執(zhí)行的 JAR 文件包和不可執(zhí)行的 JAR 文件包都包含 MANIFEST。關(guān)鍵在于可執(zhí)行 JAR 文件包的 MANIFEST,其內(nèi)容包含了 Main-Class 一項(xiàng)。這在 MANIFEST 中書寫格式如下:

        Main-Class: 可執(zhí)行主類全名(包含包名)

        例如,假設(shè)上例中的 Test.class 是屬于 test 包的,而且是可執(zhí)行的類 (定義了 public static void main(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è)目錄中,使用如下命令:

        jar cvfm test.jar manifest.mf test

        之后在“==”目錄中創(chuàng)建了 test.jar,這個(gè) test.jar 就是執(zhí)行的 JAR 文件包。運(yùn)行時(shí)只需要使用 java -jar test.jar 命令即可。

        需要注意的是,創(chuàng)建的 JAR 文件包中需要包含完整的、與 Java 程序的包結(jié)構(gòu)對應(yīng)的目錄結(jié)構(gòu),就像上例一樣。而 Main-Class 指定的類,也必須是完整的、包含包路徑的類名,如上例的 test.Test;而且在沒有打成 JAR 文件包之前可以使用 java <類名> 來運(yùn)行這個(gè)類,即在上例中 java test.Test 是可以正確運(yùn)行的 (當(dāng)然要在 CLASSPATH 正確的情況下)。


        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 在线观看亚洲电影| 最近中文字幕完整免费视频ww| 色久悠悠婷婷综合在线亚洲| 国内精品免费视频精选在线观看| 亚洲日韩中文字幕天堂不卡| 免费人成在线观看播放国产| 在线观看肉片AV网站免费| 亚洲国产视频久久| 亚洲伊人久久大香线蕉综合图片| 69xx免费观看视频| 国产精品内射视频免费| 亚洲AV日韩综合一区尤物| 国产亚洲一区区二区在线 | 午夜dj免费在线观看| 高清永久免费观看| 亚洲精品日韩一区二区小说| 国产精品国产亚洲精品看不卡| 无限动漫网在线观看免费| a色毛片免费视频| 国产亚洲精品AAAA片APP| 亚洲视频小说图片| 亚洲精品国产精品国自产观看| 国产又大又粗又长免费视频| 久久av免费天堂小草播放| 亚洲熟妇AV乱码在线观看| 久久精品亚洲精品国产色婷| 亚洲免费日韩无码系列| 成人毛片免费观看| 91免费播放人人爽人人快乐| 中国好声音第二季免费播放| 日韩色视频一区二区三区亚洲 | 亚洲av永久无码精品秋霞电影秋 | 亚洲人成伊人成综合网久久| 国内精品久久久久久久亚洲| 国产黄色片在线免费观看| 亚洲网站在线免费观看| 久久国产乱子精品免费女| 成人在线免费视频| 亚洲丁香婷婷综合久久| 亚洲中文字幕无码一去台湾 | 亚洲女同成av人片在线观看|