Tomcat+JDK打包中出现的一些问题

本文详细记录了如何使用JDK5、Tomcat6解压缩版、Win7和WinRAR4.11将Web项目打包成自解压文件,实现安装后自动启动Tomcat服务并设置为开机自启动的过程。包括解决安装Tomcat服务时出现的JAVA_HOME变量为空的问题,以及打包自解压文件和设置快捷方式的细节。

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

近日接到一个需求,将JDK和tomcat以及一个web项目打包成安装文件的形式,要求在安装完毕后以windows服务的方式启动tomcat并将tomcat设置为开机自启动。

下面主要记述在制作过程中遇到的问题和解决方法。

工具及环境:

JDK5,、Tomcat6解压缩版、Win7、WinRAR4.11

制作思路:

通过Tomcat的环境变量设置与JDK相关联,将Tomcat服务注册为windows服务并设置为开机自启动状态,最后将加入了web项目的整个目录使用WinRAR打包成自解压文件并设置解压后自动启动文件,在桌面上提供启动Tomcat服务的快捷方式。

过程:

所使用的Tomcat目录F:\CAS.

首先将JDK目录复制到“F:\CAS\bin\”文件夹下,我给JDK文件夹的名字为“F:\CAS\bin\java”。经过查阅网上资料,首先对"F:\CAS\bin\"文件夹下的setclasspath.bat 文件进行了修改,

修改结果为,在

rem ---------------------------------------------------------------------------
rem Set CLASSPATH and Java options
rem
rem $Id: setclasspath.bat 908749 2010-02-10 23:26:42Z markt $
rem ---------------------------------------------------------------------------

下面添加:

Set CLASSPATH=.
Set JAVA_HOME=%cd%\java
Set PATH=%cd%\java\bin

经过该设置,并进行测试,startup.bat可以启动Tomcat,但是如果执行service.bat install命令会出现JAVA_HOME 变量为空的现象,虽然服务可以安装成功,但无法正常启动,报错为:

windows 不能在 本地计算机 启动 Apache2。有关更多信息,查阅系统事件日志。如果这是非 Microsoft 服务,请与服务厂商联系,并参考特定服务错误代码 0

查阅网上资料发现大多所说的是以下几种情况:

1.安装目录中有中文存在

2.将jre的bin文件夹的的某文件拷贝到system32或者tomcat的bin文件夹下

3.8080端口号被占用,修改端口号

经过测试上述几种方法均不能解决问题。纠结了很久以后,发现我当时所用的JDK为6.0,虽然无法确定是否由此引起的问题,还是讲JDK更换为了JDK5。

更换以后,startup.bat仍可以正常启动,但Tomcat的windows服务仍然无法启动,由于此前我已将系统环境变量全部删除,改用命令设置的方式,于是重新配置了JAVA_HOME,配置完成后Tomcat服务即可正常启动。但要还没有达到要求的安装完成即可启动的效果,于是重新删除了配置的环境变量。虽然setclasspath.bat中设置了JAVA_HOME,但似乎并未对服务起作用,在安装时显示的该变量仍然为空,先后在Service.bat、Catalina.bat中进行JAVA_HOME的设置,都没有效果。于是在安装服务前进行了设置,并对所用的Service.bat的PR_JVM进行了更改,不再使用auto,改为指定JAVA_HOME对应的JVM,新建的批处理文件runserver.bat如下:

Set JAVA_HOME=%cd%\java
service.bat install Tomcat6CAS

此时可以正常的安装Tomcat的服务并启动。将Tomcat设置为开机自启动,需要在Service.bat中加上sc config %SERVICE_NAME% start= auto,

加载服务安装完毕后即可,我加在了倒数第三行echo The service '%SERVICE_NAME%' has been installed.之上。

至此整个tomcat的配置就算完成了。

在打包为自解压格式的文件中还有几个问题要注意:

WinRAR的默认根目录为解压目录,所以原来的runserver.bat如果直接作为解压后的启动文件会出错,在设置时,我新建了一个runserverrar.bat文件,针对解压路径对JAVA_HOME做了更改,该文件只能在解压结束由WinRAR调用才能正确启动,内容如下:

Set CATALINA_HOME=%cd%\CAS
Set CATALINA_BASE=%cd%\CAS
Set JAVA_HOME=%cd%\CAS\bin\java
call %cd%\CAS\bin\service.bat install Tomcat6CAS
net start Tomcat6CAS

重新设置了CATALINA_HOME,CATALINA_BASE 和JAVA_HOME三个环境变量供WinRAR启动runserverrar.bat调用,以解压后的路径安装Tomcat并使用call命令等待服务安装完毕,然后启动服务。如果不适用call命令则,马上会执行net start Tomcat6CAS这一行,由于此时Tomcat尚未安装完毕,显然不能成功启动,也就达不到安装后自动运行服务的效果。

在创建启动服务的快捷方式时,应当注意使用的图标为.ico 后缀的图片,由于不了解这些,也费了些时间才成功设置了快捷方式的图标。

注:由于工作两年来一直在做android,接了这个任务费了不少力气,都已经不记得Tomcat的各项配置,记录下来,也许以后会有用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值