无法将Tomcat作为Windows服务启动

18

我在Windows 8上使用Tomcat6。我能够通过startup.bat启动Tomcat,没有出现错误。我已将Tomcat6.exe、Tomcat6w.exe和service.bat复制到tomcat/bin目录下,并将.exe文件设置为管理员运行。

我以管理员权限打开命令行并执行"service.bat install",没有出现错误。在Windows服务中,我可以看到Apache Tomcat 6,我想让它自动运行。

但是无论是从Windows服务使用"Start"按钮运行还是在Windows启动时运行,我都收到相同的错误消息。

"Windows 无法启动本地计算机上的 Apache Tomcat 6。有关更多信息,请查看系统事件日志。如果这是非 Microsoft 服务,请联系服务供应商并引用特定于服务的错误代码 0。

当我检查Windows事件日志时,发现以下奇怪的错误信息。

"Apache Tomcat 6 服务终止,具体原因如下: 操作成功完成。"

我尝试将msvcr71.dll复制到tomcat/bin目录下,但没有任何变化。我还能做些什么?

更新:

我使用的端口与8080不同。我在日志文件/logs/jakarta_service.log中看到以下错误:

%1 不是有效的 Win32 应用程序。


1
奇怪的错误 :) 可能是 IIS 运行阻止了端口? - jmj
似乎是防火墙阻止了tomcat6。 - Ved
在日志文件/logs/jakarta_service.log中,它说"%1不是一个有效的Win32应用程序。"另外,我已经在使用与8080不同的端口。 - melo
15个回答

46

前往开始 > 配置Tomcat >

  • 启动 > 模式 = Java
  • 关闭 > 模式 = Java

这对我有用!


1
通俗地说,
  • 进入您安装/提取路径的Tomcat bin文件夹(例如,C:\ tomcat \ bin)
  • 运行程序Tomcat8w(它将打开Tomcat属性GUI)
  • 切换到启动选项卡并设置模式= Java
  • 选择关闭选项卡并设置模式= Java
  • 启动/重新启动Tomcat Windows服务
- Rushikesh Gaidhani

15

我因为更新了Java版本而遇到了问题。

以下步骤对我有效:

  1. 运行 \Tomcat\bin\tomcat7w.exe
  2. 确认 "启动" 选项卡 -> "模式" 选择 "jvm"
  3. "Java" 选项卡 -> 更新 "Java虚拟机" 路径为新版本路径
  4. 重启 Tomcat

完成。


8
"Windows 无法在本地计算机上启动 Apache Tomcat 6。有关详细信息,请查看系统事件日志。如果这是非 Microsoft 服务,请联系服务供应商,并参考特定于服务的错误代码0。"
出现此类错误时,请按照以下步骤操作:开始 -> 配置 Tomcat -> 启动 -> 模式 -> Java,同样地,在关闭 Tomcat 的配置中也是如此:开始 -> 配置 Tomcat -> 关闭 -> 模式 -> Java。

1
2020年,我在Tomcat 9.3上遇到了同样的问题。TomcatXw位于(Win 10)C:\ Program Files \ Apache Software Foundation \ Tomcat 9.0 \ bin中。将模式从“jvm”更改为“java”,问题得到解决。谢谢! - schattenjager

3

首先,您需要检查端口。可能会出现默认端口(8080)被其他应用程序使用的情况。

尝试在conf/server.xml文件中将端口从8080更改为其他端口。

此外,请检查您的JRE_HOME变量是否正确设置,因为Tomcat需要JRE才能运行。您还可以在系统中设置JRE_HOME变量。方法是:打开“我的电脑” ->右键单击并选择属性->高级系统设置->高级->环境变量,然后单击“新建” -> 变量名称=“JRE_HOME”,变量值=“C:\Program Files\Java\jre7”。


1
原因:

此问题的原因是:

1- tomcat can't find the jvm file from the directory specified to start the service because is deleted.

2- Incorrect permissions to the java folder for read&write access

3- Incorrect JAVA_HOME path.

4- Antivirus deleted the jvm file from java folder

解决方案:

1- 确认指定的文件存在于Java目录中。

2- 确保该文件具有读写权限。

3- 确认JAVA_HOME对应正确的Java版本。

4- 如果文件已被删除,请重新安装相同的Java版本以重新创建缺失的文件。


1
  1. 检查apache tomcat catalina日志: ../logs/catalina.log
  2. 如果在日志中找到“端口已被使用”异常,则使用以下命令检查Windows使用的端口和进程: 运行cmd netstat -ao 它将列出所有正在监听的端口和相应的进程ID,您可以从配置文件中找到Tomcat使用的端口: ../conf/server.xml

    <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
    

并杀掉使用Tomcat端口的进程。


1

对我而言,最简单有效的答案是由Prashant提出并由Bluish编辑的那个。

打开“开始菜单”>配置Tomcat >启动& gt;模式 = Java关机& gt;模式=Java

不幸的是,我(和其他人)必须以不同的方式完成此操作。我转到了tomcat二进制文件目录,并运行了“tomcat7w”应用程序,这就是我更改配置的方法。

在那里,我能够将启动模式和关闭模式更改为 Java 。就像这样:

步骤1)定位 tomcat7w

通常位置 => %TomCatHomeDIR%/bin 在我的情况下,tomcat在xampp文件夹中,因此我的地址是:

C:\xampp\tomcat\bin

tomcat7w文件位置截图

步骤2)启动tomcat7w并在启动和关闭选项卡中更改模式。

Tomcat7w启动选项卡截图

注意 > 这是基于XAMPP标准版附带的7.0.22版本。


1
非常重要的是,您不应在JAVA_HOME路径中包含bin。 它应该像这样,

C:\Program Files\Java\jdk-11.0.3


1

Prashant提出的解决方案对我很有效。

Tomcat9属性 > 配置 > 启动 > 模式 = Java Tomcat9属性 > 配置 > 关闭 > 模式 = Java


这是一个重复的答案,请提供您自己的答案或删除该帖子。 - Andronicus

0

我曾经遇到过类似的问题,但是安装32位的Tomcat和32位的JDK解决了这个问题。这种情况通常是由于位数不匹配造成的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接