六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

怎么把java程序編譯成.exe文件(就是制作可執行的JAR文件包)

[摘要]作者:邊城狂人常常在網上看到有人詢問:如何把 java 程序編譯成 .exe 文件。通常回答只有兩種,一種是制作一個可執行的 JAR 文件包,然后就可以像.chm 文檔一樣雙擊運行了;而另一種是使用...
作者:邊城狂人

常常在網上看到有人詢問:如何把 java 程序編譯成 .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 正確的情況下)。





主站蜘蛛池模板: 日韩在线视频中文字幕 | 婷婷激情狠狠综合五月 | 欧洲mv日韩mv国产mv | 青青青青青青草 | 中文字幕亚洲日本岛国片 | 日本在线观看视频网站 | 日韩在线视频第一页 | 一二三四视频中文字幕在线看 | 亚洲成a人片在线观看中文!!! | 亚洲欧美日韩精品久久亚洲区 | 色婷婷久久综合中文久久蜜桃 | 欧美性理论片在线观看片免费 | 亚洲国产成人久久综合碰 | 日本不卡免费新一二三区 | 亚洲国产系列久久精品99人人 | 婷婷激情综合 | 欧美一区2区三区4区贰佰公司 | 日日摸夜夜爽人人添 | 自拍视频免费 | 欧美一卡二卡三卡四卡 | 香蕉成人啪国产精品视频综合网 | 日韩精品特黄毛片免费看 | 亚洲精品视频在线观看免费 | 四虎网址最新 | 四虎影视在线影院4hu | 色哟哟色院91精品网站 | 五月激情丁香 | 综合色亚洲 | 天天躁日日2018躁狠狠躁 | 日韩精品一区二区三区中文 | 欧美午夜视频一区二区 | 午夜欧美成人久久久久久 | 色福利网| 日日摸日日干 | 综合久青草视频 | 张丽莉老师的故事 | 婷婷五色 | 网友自拍第一页 | 五月天久久综合 | 亚洲爱婷婷色婷婷五月 | 欧美一级视频精品观看 |