最近做了一個小的web應用,客戶那邊都不常用java環境,讓他們安裝、配置java、tomcat環境對他們來說太難為他們了,
所以花了點時間研究了下exe文件的制作,將java web應用制作成exe文件,并打包了jre環境,最后生成啟動服務器的快捷方式、
打開IE的快捷方式,感覺這樣就成了傻瓜型的了,^!^ 由于上網找資料花了不少時間,想著方便那些有類似需要的朋友,就
在此總結一下,希望能幫助到別人吧。
在一個沒有java環境的系統中(此處只應用于windows),要執行web應用,需要jdk、tomcat(服務器),我是將機器上裝的jdk目錄、
tomcat目錄拷貝到一個目錄,還有數據庫客戶端,這里用的hsql,就不詳細說了。這里主要注意的問題主要就是環境變量的設置,
在tomcat\bin目錄中我們需要設置java_home和CATALINA_HOME,設置方法如下:
打開tomcat\bin\startup.bat,對其中if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome這樣的語句都移動到下面代碼的后面:
set CURRENT_DIR=%cd% 注釋:取得當前目錄tomcat\bin
set CATALINA_HOME=%CURRENT_DIR%
cd .. 注釋:到上一級目錄tomcat
set CATALINA_HOME=%cd%
cd .. 注釋:到上一級目錄delply
set JAVA_HOME=%cd%\jdk 注釋:設置JAVA_HOME
set JRE_HOME=%cd%\jdk\jre 注釋:設置JRE_HOME
其實這里的關鍵就是不使用以前的判斷,直接設置CATALINA_HOME、JAVA_HOME等到你打包的目錄
注意我的目錄結構如下,大家可根據需要適當調整上面的代碼:
deploy
------->tomcat
------->jdk
再一點就是NSIS的使用,可以使用它提供的VNISEdit編譯環境中的 新建腳本:向導進行配置,其中要注意的問題是
1. 選擇目錄的時候,設置的是目錄下的內容,不包括目錄;
2. 通過向導配置的快捷方式有點問題,需要手工改動編碼,主要是下面的內容:
Section "yourapp" SEC01
SetOutPath "$INSTDIR" (這里是你的根目錄,我這里是deploy)
SetOverwrite ifnewer
File /r "..\deploy\*.*" (注意這里的格式)
SectionEnd
Section -AdditionalIcons
SetOutPath "$INSTDIR\tomcat\bin" (這里是你快捷方式的起始位置,即快捷方式指向的那個文件的目錄,前面設置的是根目錄,這里需要重新設置,如果在前面設置的話,你的根目錄就變成了你的快捷方式指向的那個文件的目錄了,一定要注意這里的問題)
CreateDirectory "$SMPROGRAMS\IBS"
CreateShortCut "$desktop\StartServer.lnk" "$INSTDIR\tomcat\bin\startup.bat" "" "$INSTDIR\tomcat\start-server.ico" (我這里是把tomcat里的startup.bat建立了桌面快捷方式,后面是我設置的圖標)
CreateShortCut "$desktop\StartIBS.lnk" "http://localhost:9000/appname" "" "$INSTDIR\tomcat\app_ie.ico" (這里是我建立的桌面快捷方式,點擊就打開的是我制定的網址)
CreateShortCut "$SMPROGRAMS\IBS\Uninstall.lnk" "$INSTDIR\uninst.exe"
SectionEnd
總結上面的內容,就是我們在打包java web系統時,主要是把tomcat、jdk放到一個目錄下,使用NSIS工具將其壓縮即可,需要注意的就是兩點,一是tomcat中
對CATALINA_HOME、java_home的設置,二就是nsis腳本中的目錄設置、快捷方式的設置了。。