1. 程式人生 > >Javaweb程序打包或exe執行文件

Javaweb程序打包或exe執行文件

方式 條件 指定 startup 們的 不安裝 要求 環境 mar

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類庫也要大量的砍伐。

Javaweb程序打包或exe執行文件