Tomcat服务打开失败:Commons Daemon procrun stdout initialized(Tomcat7、exe安装版本)

本文记录了作者在尝试启动Tomcat7.exe和tomcat7w.exe时遇到的无法开启服务的问题。通过查看日志文件,发现问题与JDK相关。在尝试修改环境变量、删除系统文件、调整JAVA_OPTIONS等解决方案后,问题依然存在。最后,作者怀疑可能是JDK和Tomcat位数不匹配,但未找到有效解决办法,选择重装解压版Tomcat。

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

Tomcat是我很久以前下载的,一直没用,但是印象中是配置ok,可以正常使用的。但是今天一打开,发现服务死活打不开:tomcat7.exe开了以后闪退,tomcat7w.exe点了start以后进度条推到一半就没了,从任务管理器的服务里也开不了。
其实这还不算什么,最关键的是我对这玩意又不了解,出了问题它没有提示,所以我完全不知道到底是什么原因开不了,而且明明我最开始装的时候是成功了的!!!
然后就很绝望。网上说的startup.dat、service.bat什么的我又没有,还以为我tomcat缺胳膊断腿需要重装一遍,然后就看到tomcat的安装有zip和exe两种安装方式exe安装的版本是没有startup.dat的,service.bat install这个早就搞好了。
我:emmm……

前面不是说了吗,我配置这些都是没毛病的,然后我看到tomcat安装目录下logs文件里有tomcat的日志,长这样:

打开2019-05-27的日志以后就可以看到错误报告,是这样的:

在这里插入图片描述

第一张图是文件tomcat7-stdout.2019-05-27.log里的,第二张图是文件commons-daemon.2019-05-27.log里的>,对这些日志含义有兴趣的可以看一下这个博客里的内容:https://www.cnblogs.com/qlqwjy/p/8036091.html

图里的路径是我jdk的路径,所以可以看到是jdk出了问题。网上找了一下,最开始我以为是路径的问题,exe版本下的tomcat改环境变量是没用的,要到tomcat7w.exe里去改,就是这里:
在这里插入图片描述
改了以后还是不行,想了一下不对啊,我又没动过tomcat路径又没动过jdk路径,哪来的路径问题啊。然后就又去网上瞅了一眼,说cmd里看下是不是jdk出了问题。
在这里插入图片描述
试了一下发现果然是jdk的问题,就上面那个。只能重新再装了一个了。
官网上下下来安装,结果安装失败了……,还是上面那个问题,这次是在安装最后弹出来的,长这样:
在这里插入图片描述

我就又到网上去搜,网上给的回答是

“安装JDK的时候在C:\Windows\System32生成的java.exe、javaw.exe、javaws.exe这个3个引起的;只要把这3个运行文件删除掉就可以了”

那么问题来了,我System32下根本就没有这三个文件啊?!

然后到cmd里执行,看到是JAVA_OPTIONS这一块的问题,跟QTP有关。删掉用户变量里的_JAVA_OPTIONS和IBM_JAVA_OPTIONS,还有系统变量里的_JAVA_OPTIONS、IBM_JAVA_OPTIONS和JAVA_TOOL_OPTIONS就可以了。

唉,佛了。

———————————————————————————————————————————————————

再来更个后续,以为jdk重新下载完就皆大欢喜的我还是太天真了。还是同样的问题,网上找了半天都没找到有用的办法,我看有人说jdk的位数和tomcat的位数如果不一样的话也会有这样的错误,我就去查了下两个的位数,这里不得不吐槽一下下载tomcat安装版的真是太惨了,出了问题网上一搜,大片大片都是针对解压版的回答,还全都是一毛一样的解决办法,很难受,这里放下安装版的查位数的办法:
在这里插入图片描述
就红线框出来的这块,路径是tomcat安装目录下的lib文件里。
这里看得是64位的,我jdk也是64位的,但是还是不行。网上是说把jdk安装目录下lib文件里的msvcr71.dll放到tomcat的bin目录下,可是我这里只有msvcr100.dll,放了也没用。其实tomcat这个查询的位数这里我还是有点不确定,因为开始那个报错那里有句Commons Daemon procrun (1.1.0.0 32-bit) started让我觉得有点奇怪。
然后我看到还有一个error信息:%1 不是有效的 Win32 应用程序。……呃这个我还以为是跟Commons Daemon procrun stdout initialized一起的,但是好像不是?
看网上有说是病毒破坏文件???反正是出了一堆奇奇怪怪的东西……
有没有人对这个有了解的来帮忙解释一下哎,不过应该都没什么人来看的吧……

反正昨天就这俩问题搞到凌晨两点多,最后决定重装个解压版的tomcat,图个啥哦,感觉自己像个傻子一样……

<think>好的,用户想了解Apache Commons Daemon procrunstdout初始化问题或配置方法。首先,我需要回忆procrun的相关知识,特别是日志配置部分。记得procrun可以将Java应用作为Windows服务运行,并且可以配置输出日志的位置。 用户提到stdout初始化,可能是指如何将控制台输出重定向到文件。根据之前的经验,procrun安装参数中有++StdOutput和++StdError选项,用于指定标准输出和错误输出的文件路径。需要确认这些参数的正确用法,以及是否需要处理编码或日志轮转等问题。 然后,检查用户提供的引用内容。引用[1]提到了启动Java进程时的命令行参数设置,可能与procrun配置相关。引用[2]和[3]涉及Tomcat安装和集群配置,可能不直接相关,但Tomcat作为服务运行时可能使用procrun,所以可能有关联。 需要确保回答中包含配置示例,比如在安装服务时使用--StdOutput和--StdError参数,并说明日志文件的路径。同时,可能需要注意文件权限问题,确保服务账户有写入权限。此外,日志轮转的问题,procrun是否支持自动分割日志文件,或者需要借助其他工具。 可能用户遇到的问题是服务运行时日志未生成,或者输出没有重定向,需要指导如何正确配置这些参数。另外,编码问题也可能导致乱码,需要提示设置文件编码参数如-Dfile.encoding=UTF-8。 最后,生成相关问题时要围绕procrun的日志配置、常见问题、调试方法、编码问题等方面展开,确保覆盖用户可能关心的其他方面。</think>### Apache Commons Daemon Procrunstdout 配置方法 Apache Commons Daemon 的 `procrun` 工具用于将 Java 应用封装为 Windows 服务。其标准输出(stdout)的初始化配置可通过以下步骤实现: #### 1. **基础配置参数** 在安装服务时,通过命令行参数指定标准输出和错误输出的路径: ```bash prunsrv.exe //IS//MyService ^ --Classpath=myapp.jar ^ --StartClass=com.example.Main ^ --StdOutput=C:\logs\stdout.log ^ --StdError=C:\logs\stderr.log ``` - `--StdOutput`:指定标准输出文件路径 - `--StdError`:单独配置错误输出路径(默认与标准输出合并) #### 2. **日志轮转与追加模式** - **追加模式**(默认覆盖): ```bash --LogPath=C:\logs ^ --StdOutput=auto ^ --StdError=auto ``` 此配置会生成按日期命名的日志文件(如 `stdout_YYYYMMDD.log`)[^1]。 - **禁用日志**(仅调试时建议): ```bash --StdOutput=null ^ --StdError=null ``` #### 3. **编码问题处理** 若日志出现乱码,在 JVM 参数中添加编码设置: ```bash --JvmOptions=-Dfile.encoding=UTF-8 ``` #### 4. **调试技巧** 启动服务时添加控制台输出参数: ```bash prunsrv.exe //TS//MyService --Startup=auto --Type=interactive ``` 此模式可在控制台直接查看实时日志[^2]。 ### 常见问题排查 1. **权限问题**:确保服务运行账户对日志目录有写入权限 2. **路径有效性**:检查配置路径是否存在特殊字符或空格 3. **文件锁定**:重启服务前确认旧日志文件未被其他进程占用
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值