【问题标题】:Can't start Tomcat as Windows Service无法将 Tomcat 作为 Windows 服务启动
【发布时间】:2014-08-30 02:02:03
【问题描述】:

我在 Windows 8 上使用 Tomcat6。我可以通过 startup.bat 启动 Tomcat 而不会出错。我在tomcat/bin目录下复制了Tomcat6.exe、Tomcat6w.exe和service.bat,并将.exe文件设置为以管理员身份运行。

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

但无论是使用“开始”按钮从 Windows 服务运行,还是在启动 Windows 时,我都遇到了同样的错误。

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

当我检查 Windows 事件日志时,我看到以下奇怪的错误。

“Apache Tomcat 6 服务因以下特定于服务的错误而终止: 操作成功完成。”

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

更新:

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

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

【问题讨论】:

  • 奇怪的错误 :) 可能 IIS 正在运行阻塞端口?
  • 似乎是tomcat6的防火墙阻塞。
  • 在日志文件 /logs/jakarta_service.log 中显示“%1 不是有效的 Win32 应用程序。”。另外我已经使用了与 8080 不同的端口。

标签: java windows tomcat windows-services


【解决方案1】:

转到开始 > 配置 Tomcat >

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

这对我有用!

【讨论】:

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

我有问题是因为我更新了 Java 版本。

以下步骤对我有用:

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

完成。

【讨论】:

    【解决方案3】:

    “Windows 无法在本地计算机上启动 Apache Tomcat 6。有关详细信息,请查看系统事件日志。如果这是一项非 Microsoft 服务,请联系服务供应商,并参阅特定于服务的错误代码 0”

    当出现此类错误时。请转到开始 -> 配置 tomcat -> 启动 -> 模式 -> java 相似地 开始 -> 配置 tomcat -> 关闭 -> 模式 -> java

    【讨论】:

    • 2020 年,Tomcat 9.3 刚刚发生在我身上。 TomcatXw 位于 (Win 10) C:\Program Files\Apache Software Foundation\Tomcat 9.0\bin。将模式从“jvm”更改为“java”,问题就解决了。谢谢!
    【解决方案4】:

    您需要先检查端口。可能是其他应用程序使用了默认端口(8080)。

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

    另外请检查您的 JRE_HOME 变量是否设置正确,因为 tomcat 需要 JRE 才能运行。您还可以在系统中设置您的 JRE_HOME 变量。为此,请转到我的计算机->右键单击并选择属性->高级系统设置->高级->环境变量,然后单击新建->变量名=“JRE_HOME”和变量值=“C:\Program Files\Java\ jre7"

    【讨论】:

      【解决方案5】:
      1. 检查 apache tomcat catalina 日志: ../logs/catalina.log
      2. 如果在日志中发现“端口已使用”异常,则使用以下命令检查 windows 使用的端口和进程: 运行命令 网络统计 -ao 它会列出所有的监听端口和对应的进程ID,你可以从配置文件中找到Tomcat使用的端口: ../conf/server.xml

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

      杀死使用tomcat端口的进程

      【讨论】:

        【解决方案6】:

        原因:

        这个问题是由:

        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 版本以重新创建 文件丢失。

        【讨论】:

          【解决方案7】:

          对我有用的最简单的答案是 Prashant 提到并由 Bluish 编辑的答案。

          转到开始 > 配置 Tomcat > 启动 > 模式 = Java 关闭 > 模式 = Java

          不幸的是,我(可能还有其他人)以不同的方式执行此操作,我进入 tomcat bin 目录并运行“tomcat7w”应用程序,这就是我更改配置的方式。

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

          Step1) 定位 tomcat7w

          一般位置 => %TomCatHomeDIR%/bin 在我的情况下,tomcat 在 xampp 文件夹中,所以我的地址是:

          C:\xampp\tomcat\bin

          tomcat7w file location screenshot

          Step2) 启动 tomcat7w && 在启动和关闭选项卡中更改模式

          tomcat7w startup tab screenshot

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

          【讨论】:

            【解决方案8】:

            Prashant 建议的解决方案对我来说效果很好。

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

            【讨论】:

            • 这是一个重复的答案,请提供您自己的答案或删除帖子
            【解决方案9】:

            我也遇到过类似的问题,但是安装tomcat 32bit 和jdk 32bit 可以,这主要是因为Bit不匹配。

            【讨论】:

              【解决方案10】:

              所有这些错误都与 Apache 和 JDK 连接不良有关。

              1. 开始>系统>Advanced_system_settings>
              2. 系统属性会弹出去环境变量
              3. 在用户变量中你必须设置变量:JAVA_HOME 值:C:\Program_Files\Java\jdk1.8.0_161
              4. 在系统变量中需要放入路径:jdk/bin path & jre/bin path 你还需要有 JAVA_HOME C:\Program_Files\Java\jdk1.8.0_161

              人们通常忘记在系统变量中设置 JAVA_HOME。

              如果你仍然有错误尝试一步一步思考

              1. 打开事件查看器>检查管理事件和 Windows 日志>系统 看到错误。如果这没有帮助
              2. 转到 C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs commons-daemon.XXXX-XX-XX.log 并阅读错误和警告... 有什么问题应该很好地写下来。

              【讨论】:

                【解决方案11】:

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

                C:\Program Files\Java\jdk-11.0.3

                【讨论】:

                  【解决方案12】:

                  在 64 位系统上,您必须确保 Tomcat 应用程序和 JDK 是相同的架构:两者都是 x86 或 x64。

                  如果您想将 Tomcat 实例更改为 x64,您可能需要下载具有适当 x64 版本的 tomcat8.exetomcat9.exetcnative-1.dll。你可以通过http://svn.apache.org/viewvc/tomcat/获得这些。

                  或者,您可以通过更改 Tomcat 配置中的 Java 虚拟机路径将 Tomcat 指向 x86 JDK。

                  【讨论】:

                    【解决方案13】:

                    在我的情况下,如果您不安装 x86 版本而不是 x64 版本会有所帮助... DOH !!!

                    【讨论】:

                      【解决方案14】:

                      在开始之前,首先确保您的 Windows 环境路径中有 Java 目录的路径

                      1. 开始 > 控制面板 > 查找“系统
                      2. 选择“编辑系统环境变量
                      3. 选择“高级”标签。
                      4. 点击“环境变量...”按钮。 (窗口底部)
                      5. 在系统变量组框中,单击“新建...”按钮
                      6. 分配所需的名称,例如“Java_Home”
                      7. 单击“浏览目录”并寻址您的 Java jdk 目录。例如:C:\Program Files\Java\jdk-13.0.2
                      8. 转到 Tomcat 'bin' 文件夹并启动它。

                      现在应该可以工作了。

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2013-06-05
                        • 1970-01-01
                        • 2013-06-19
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多