Tomcat运行在当前窗口

起因

在 Windows 下运行 Tomcat 应用服务器,最简单的方式就是双击 startup.bat 了,或者是在命令行窗口中输入 startup.bat。

按照 Tomcat 的默认设置,最后 Tomcat 会运行在一个新建的命令行窗口中(和 startup.bat 不在同一个命令行窗口中)。这种方式有个很麻烦的问题,就是一旦 Tomcat 遇到致命错误(常见的有 -Xms 或 -Xmx 设置过大,或者 Tomcat 要使用的端口已经被其他应用程序抢占等),该新建的命令行窗口就会直接关闭。对于使用者来说,其感受就是 Tomcat 窗口一闪而过,难以看到具体错误信息是什么。

解决方法

其实解决方法也很简单,我们看看 {TOMCAT_HOME}/bin 目录下的 catalina.bat 文件,其中有这样一段内容:

echo Usage:  catalina ( commands ... )
echo commands:
echo   debug             Start Catalina in a debugger
echo   debug -security   Debug Catalina with a security manager
echo   jpda start        Start Catalina under JPDA debugger
echo   run               Start Catalina in the current window
echo   run -security     Start in the current window with security manager
echo   start             Start Catalina in a separate window
echo   start -security   Start in a separate window with security manager
echo   stop              Stop Catalina
echo   version           What version of tomcat are you running?

注意这两行:

echo   run               Start Catalina in the current window
echo   start             Start Catalina in a separate window

原来 run 就是在当前窗口中运行,而 start 就是在新窗口中运行。

然后我们再来看 startup.bat 文件,最后有一行:

call "%EXECUTABLE%" start %CMD_LINE_ARGS%

果然是用了 start 参数。那么我们就把它改成 run :

call "%EXECUTABLE%" run %CMD_LINE_ARGS%

这样,Tomcat 就会运行在当前命令行窗口。以后再碰到任何致命错误,窗口也不会关闭了。使用者可以慢慢看咯。

分类: Tomcat
### 解决Tomcat在Windows环境下启动时窗口显示乱码的问题 #### 修改文件编码格式为GBK 由于CMD窗口默认的编码格式是GBK,在遇到乱码问题时,可以尝试将相关文件的编码格式设置为GBK。查看命令行窗口编码方式的方法是在命令行窗口中右键点击标题栏,选择属性,然后在选项下的当前代码页查看[^3]。 #### 调整控制台日志输出编码 对于Tomcat 8.5.83版本,在Win10操作系统下部署项目时如果遇到了控制台日志输出乱码的情况,可以通过修改`conf/logging.properties`文件中的字符集来解决问题。具体操作是将原本的日志配置文件里的UTF-8更改为GBK[^4]。 #### 配置HTTP连接器URL编码 为了防止通过浏览器访问应用时可能出现的中文参数传递导致的乱码现象,可以在`conf/server.xml`文件内的Connector标签里增加URLEncoding="GBK"属性,确保URL传输的数据能够被正确解析。 ```xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK"/> ``` #### 设置JVM启动参数支持GBK编码 另外一种方法是从根本上改变Java虚拟机(JVM)运行时所使用的字符集,默认情况下可能是UTF-8或者其他非GBK编码形式。这需要编辑`bin/catalina.bat`批处理脚本,在其中加入-Dfile.encoding=GBK这样的指令,使得整个Tomcat服务都采用GBK作为工作编码标准。 ```batch set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=GBK ``` 以上措施可以帮助解决Tomcat在Windows环境中启动过程中产生的各种类型的乱码情况。值得注意的是,不同的场景可能会有不同的最佳实践方案;因此建议根据实际情况灵活调整上述策略组合使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值