Tomcat6的NSIS安装程序的制作

本文详细介绍了如何使用NSIS建立安装程序,在Windows平台上自动化部署Tomcat6及其Web应用的过程,包括Java运行环境安装、Tomcat服务安装及配置,以及将Web应用加入网站并启动Tomcat服务的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有一个Web Application是在Tomcat6上构建的,要部署到Windows平台上,需要制作一个安装程序,以方便用户安装。

安装程序的主要目标是:用一个安装程序安装Java运行环境、Tomcat以及Web Application;修改Tomcat配置文件将应用加入网站,安装并启动Windows下的Tomcat服务。达到用一个安装程序在一台新装的Windows操作系统上部署整个Web应用的目的。安装程序使用NSIS建立,其安装脚本的关键点如下:

1Tomcat6Windows下服务的安装

从网上资料所见的有下面两个方法:

方法1

SetOutPath  " $INSTDIR\tomcat\bin "
nsExec::Exec 
" cmd /C service install "
ExecWait 
" sc config Tomcat6 start= auto "

方法2

SetOutPath  " $INSTDIR\tomcat\bin "
ExecWait 
" service.bat install "
ExecWait 
" sc config Tomcat6 start= auto "

在参考Tomcat网站上的手册后发现,使用tomcat6.exe执行程序也可以安装服务。

方法3

SetOutPath  " $INSTDIR\tomcat\bin "
ExecWait 
' tomcat6 //IS//Tomcat6 --DisplayName="Apache Tomcat 6" \
-- Install = " $INSTDIR\Tomcat\bin\tomcat6.exe "   -- Jvm = " $INSTDIR\jre6\bin\server\jvm.dll "  \
-- StartMode = jvm  -- StopMode = jvm  -- Startup = auto  -- StartClass = org.apache.catalina.startup.Bootstrap  -- StartParams = start  -- StopClass = org.apache.catalina.startup.Bootstrap  -- StopParams = stop \
-- LogPath = $INSTDIR\Tomcat\logs  -- Classpath = $INSTDIR\Tomcat\bin\bootstrap.jar \
-- JvmOptions =- Dcatalina. base = $INSTDIR\Tomcat; - Dcatalina.home = $INSTDIR\Tomcat; - Djava.endorsed.dirs = $INSTDIR\Tomcat\endorsed; - Djava.io.tmpdir = $INSTDIR\Tomcat\temp; - Djava.util.logging.manager = org.apache.juli.ClassLoaderLogManager; - Djava.util.logging.config.file = $INSTDIR\Tomcat\conf\logging.properties; '
 

其中方法3在安装程序运行时正确率更高些,而方法1和方法2有时会出现服务不能安装的情况。

2Tomcat6服务安装完毕后首次不能启动

Tomcat6服务安装完毕后如果不重新启动计算机而启动服务的话,将会出错,导致服务无法启动。检查log文件,发现是jvm.dll文件加载出错而导致java虚拟机无法启动,上网查资料,原来是新版本(1.6)的jvm.dll启动时要加载微软动态库msvcr71.dll,由于系统在当前的搜索路径中无法找到msvcr71.dll文件而出错,该文件随jdk6jre6提供,在相应的bin目录下,但即使安装程序将jre\bin目录加入path环境变量也无济于事,好像jvm.dll只认windows启动时的系统路径,而对本次windows系统启动后新加入的path变量不予承认(不知哪位高手能代为剖析其中原因)。解决的办法是将msvcr71.dll拷贝到jre\bin\server目录下和jvm.dll放在一起,或是拷贝到windows系统目录下都可以。

3Tomcat6不要求非要安装jdk,安装jre也可以,而Tomcat6以前版本则不行。

4、修改Tomcat配置文件server.xml

修改配置文件要涉及到xml文件的读写,需要使用NSISxml插件,可以在此下载

下面的实例脚本在server.xml中增加一个站点context,把我们自己的web应用加进去。

Function UpdateTomcatConfig
    ${xml::LoadFile} 
" $INSTDIR\tomcat\conf\server.xml "  $ 0
    ${xml::CreateNode} 
" <Context></Context> "  $R0 
    ${xml::GotoPath} 
" /Server/Service/Engine/Host "  $ 0
    ${xml::InsertEndChild} 
" $R0 "  $ 0
    ${xml::GotoPath} 
" /Server/Service/Engine/Host/Context "  $ 0
    ${xml::SetAttribute} 
" path "   " /myapp "  $ 0
    ${xml::SetAttribute} 
" reloadable "   " true "  $ 0
    ${xml::SetAttribute} 
" docBase "   " $INSTDIR\myweb "  $ 0
    ${xml::SetAttribute} 
" debug "   " 0 "  $ 0
    ${xml::SaveFile} 
" $INSTDIR\tomcat\conf\server.xml "  $ 0
FunctionEnd

 

 

转载于:https://www.cnblogs.com/ronghaoyue/archive/2010/02/12/1667900.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值