Javaweb程序打包或exe執行文件


java程序的打包與發布

 

這里主要是講解一下怎樣將 Java程序打包成獨立運行的exe程序包,以下這種方法應該是最佳的解決方案了。NetDuke的EXE程序包了是使用這種方案制作的。在操作步驟上還是比較簡單的,而且通用性強。

1.程序打包

        首先將程序打成Jar包,打包命令:jar cf 包文件名.jar *.class。接下來編譯包中的清單文件MANIFEST.MF 。

        Manifest-Version - 指定清單文件的版本號

        Main-Class - 指定程序運行的入口類。注意:類名后不要加class擴展名

2.讓用戶電腦不必安裝JRE環境

        通常運行Java程序有個前提條件:用戶電腦必須先安裝JRE環境。雖然安裝JRE環境非常簡單,但畢竟多了一步,算是有一點點的瑕疵。這里給出一個不必讓用戶安裝JRE環境的方法,其實現步驟如下:

     (1)將原JDK中的“jre”目錄復制到“D:\項目文件夾\java1.4.2”目錄下(java1.4.2也可換成其他名稱)。

     (2)將JDK和JRE從本機卸載掉,這樣表示本機沒有安裝JAVA運行環境。

     (3)修改批處理文件run.bat中的命令為“start java1.4.2\jre\bin\javaw -jar NetDuke.jar”,僅僅是在javaw前加上了一個相對應路徑。

      雙擊run.bat即可在不安裝JRE環境的電腦運行此Java應用程序。

3.更進一步的完善

        1、拋棄批處理文件(*.bat)

      用批處理文件運行程序似乎不夠專業,雖然它足以完成運行任務。但習慣就象一種毒葯一旦染上就很難擺脫它的影響,Windows統治下的人們早已經習慣運行擴展名是EXE的程序,用*.bat他們就會感覺別扭。

      我們可以用一個叫JavaLauncher的免費小程序來代替批處理文件去運行Java程序。JavaLauncher的下載網址是:http://www.rolemaker.dk/nonRoleMaker/javalauncher/marner_java_launcher.htm

         下載下來的文件是一個名JavaLauncher.zip的壓縮包,解壓后的目錄結構如下:

         1.source目錄包含了JavaLauncher的源程序,是用C語言寫的

      2.changes.txt是新版的修改說明

      3. launch.exe是主程序

      4. launcher.cfg是配置文件

      5.readme.txt是一些說明和示例

      我們只需要launch.exe、launcher.cfg兩個文件,將這兩個文件復制到打包文件所在的目錄。launcher.cfg是一個僅三行內容的文本文件,將它修改如下:

         .

         .\java1.4.2\jre\bin\javaw.exe

         -jar NetDuke.jar

         第一行設置指向JAR包NetDuke.jar的目錄,由於launch.exe和NetDuke.jar同在一個目錄,所以用“.”即當前目錄。

      第二行設置指向jre\bin\javaw.exe的路徑。要先將jre目錄復制到了java1.4.2子目錄中

配置好launcher.cfg后,雙擊launch.exe即可運行java應用程序。

      如果仔佃研究eclipse的啟動方式,發現eclipse和JavaLauncher的原理一樣:eclipse.exe相當於 launch.exe,startup.jar相當於NetDuke.jar。只不過eclipse.exe不象launch.exe要具有通用性,所以它沒有*.cfg這樣的配置文件,而是將啟動信息固化在eclipse.exe中。

4.美化圖標

         launch.exe文件的圖標太單調了,讓我們給它換個好看點的。換程序的圖標需要用到一個免費的軟件:Resource Hacker,它有中文版,下載網址是:

      http://www.users.on.net/johnson/resourcehacker/

         用Resource Hacker來替換launch.exe的圖標的步驟如下:

      (1)運行Resource Hacker。

      (2)單擊主菜單“文件→打開”,將launch.exe載入到程序中。

      (3)選擇左邊的“圖標→1→1030”,然后右鍵單擊“1030”項,選擇“替換資源…”。然后在彈出窗口中單擊“打開新圖標文件”,選擇一個滿意的圖標,然后單擊“替換”按鈕。

       附注:圖標文件可以是exe、dll、res、ico,該軟件可以從exe、dll、res抽取出圖標,本例選擇的是Java的吉祥物Duke.ico。

      (4)選擇“文件→另存為”,取名NetDuke.exe。

       附注:按理說選擇“保存”也是可以的,這時Resource Hacker會將老的launch.exe備份成launch_original.exe。但也許是刷新上有問題,用“保存”方式有時launch.exe無法顯示出新圖標,但有時又可以。

      (5)最后的目錄如下所示,可見NetDuke.exe(也就是launch.exe改了個名稱)的圖標換成了Java的圖標。雙擊NetDuke.exe即可運行Java應用程序。

       1.java1.4.2(文件夾)

           2.launcher.cfg

           3.NetDuke.exe

           4.NetDuke.jar

5.最后的打包

         發送給用戶之前,通常要用WinZip或WinRAR將所有的文件全部打成一個壓縮包,然后用戶得到這個壓縮包后,將其解壓縮后即可運行程序,Eclipse軟件就是這種方式。

      另外大家要注意的幾點:

      (1)Java 應用程序中用到的資源,它都必須要求寫絕對路徑,否則在其它機子上就會出現找不到資源。所以一般我們在寫程序時就要注意一定要用絕對路徑,例如:Toolkit.getDefaultToolkit().getImage(getClass().getResource("文件名")));像這種寫法就一定沒問題。當然如果要將資源傳遞給構造器的話就沒辦法了,例如:NetDuke frame = new NetDuke("資源");這是我們就須要將資源拷貝到項目文件夾下一起打包。

      (2)一般我們的Jre都有60多M,這樣和程序一起打包就顯得很臃腫。所以要將Jre適當地減肥,具體的作法這樣不再累贅,大家在一台還沒裝JRE的機上測試,將JRE中的一個個文件刪除后程序是否可正常運行。還有一個就是rt.jar這個Java類庫也要大量的砍伐。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM