最近做了一个小的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脚本中的目录设置、快捷方式的设置了。。