如何在WinXP 64位系统上运行Tomcat 6?

17

在WinXP 64上安装了Tomcat 6,安装过程很顺利。但是当我尝试启动它(从Windows服务中启动)时,出现以下错误: “无法在本地计算机上启动Apache Tomcat服务。” 错误代码216:0xd8

7个回答

13

这是一个众所周知的问题。

Windows服务的Tomcat包编译使用32位JDK。

以下步骤应该允许您在JDK64位下将Tomcat安装为Windows服务。

  1. 下载Tomcat二进制安装包(zip文件;exe文件无法找到64位JDK/JRE)。

  2. 从存档中提取文件。

  3. 将tomcat5.exe(tomcat6.exe)重命名为tomcat5.exe.32bits(tomcat6.exe.32bits)

  4. 从tomcat5_5_64bits_wrapper.zip中提取64位Tomcat wrapper并将其重命名为tomcat5.exe(tomcat6.exe)。详情请参见此处。(更新:Bugzilla帖子似乎已经关闭,但我相信可以在Tomcat SVN存储库中找到更新的exe文件)。

  5. 将其作为Windows服务安装,执行“service.bat install [Tomcat实例名称]”,其中[Tomcat实例名称]是可选的Windows服务名称。

  • 在某些情况下,Tomcat没有正确配置服务注册表值。它会指向32位版本的JRE / JDK而不是64位版本。这可能是显式地(使用错误的JDK / JRE路径)或隐式地(“auto”值意味着使用指向32位版本的JAVA_HOME或JRE_HOME)。无论如何,强烈建议检查定义将用于Tomcat Windows服务的JDK / JRE版本的注册表值,请查看键HKEY_LOCAL_MACHINE \ SOFTWARE \ Apache Software Foundation \ Procrun 2.0 [Tomcat实例名称] \ Parameters \ Log \ jvm,并将其指向正确的64位JDK / JRE(例如jvm = C:\ Program Files \ Java \ jdk1.5.0_15 \ jre \ bin \ server \ jvm.dll)。


  • 关于#4 ["从tomcat5_5_64bits_wrapper.zip中提取64位Tomcat包装器并将其重命名为tomcat5.exe(tomcat6.exe)"],知道在哪里获取tomcat5_5_64bits_wrapper.zip会很好。这是否与datajelly.com博客文章中提到的Bugzilla问题有关? datajelly帖子目前暗示Bugzilla帖子不再可用。如果是这样,我想更新的说明应该是从Tomcast Repository下载更新的Tomcat exes,如Ed Thomas在此处的答案中所述。 - Chris
    你可以从http://svn.apache.org/viewvc/tomcat/tc6.0.x/tags/TOMCAT_6_0_18/res/procrun/amd64/下载适当的exe文件,而不是使用#4,正如Ed Thomas所提到的。 - FoxyBOA
    对于#4,我尝试从svn.apache.org/viewvc/...下载,但我无法找到如何下载exe的方法。它总是在HTML页面中显示二进制内容。要下载exe,您可以使用TortoiseSVN(或任何SVN客户端)并导航到http://svn.apache.org/repos/asf/tomcat下的适当目录。 - Liron Yahdav

    11
    根据变更日志,自6.0.21版本起,64位组件已打包在本地安装程序中:

    在分发中包含64位Windows服务包装器。更新Windows安装程序,在64位机器上自动使用正确的二进制文件。(markt)

    您不需要进行进一步配置。

    1
    我确认在Windows Server 2008 R2 (64位)上按预期工作。 - Nic

    4

    我曾经遇到过这个问题。我试图在一台虚拟的Intel Xeon CPU(X5460)上运行的Windows XP x64系统上安装Tomcat 6。我使用FoxyBOA的评论作为指南,但是我提供以下建议:

    1. 安装来自Sun的Windows x64 JRE。
    2. 安装Tomcat 6(我使用了Windows Service Installer版本),您将不得不手动指向安装期间下载的JRE(只需点击“…”按钮并找到jre6目录)。
    3. Tomcat Repository下载更新版本的tomcat6.exe和tomcat6w.exe(您可能需要找到与您下载的确切版本匹配的标记),并将其放置在bin目录中。我不知道为什么amd64版本可以在英特尔处理器上工作,但它确实可以

    之后,一切都正常:我能够使用其服务管理器和Windows服务管理控制台启动Tomcat。

    当时我使用的是Tomcat 6.0.18和Sun Java 6 Update 12(64位)。


    很好,你的回答完善了FoxyBOA的回答。 - ripper234
    按照以下步骤,可以完美地在Windows 7 64位系统下将Tomcat 6.0.24运行为服务。但是,“监视Tomcat”应用程序仍无法运行 - (v6.0.24似乎没有64位版本,而v6.0.18不起作用)。 - Jamie Love
    使用Tomcat 6.0.29在Windows 7和Server 2008 R2(均为64位)上运行良好。 - Klee

    1

    想告诉大家,当使用64位的Tomcat 6时,需要查看的注册表是:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\

    请注意额外的\Wow6432Node\

    感谢您的帮助!


    Wow6432Node节点是为在64位Windows上运行的32位程序而设立的,而不是为在64位Windows上运行的64位程序而设立的。 - Paul Wagland

    1
    在64位Windows环境下运行Tomcat的最快最简单的方法是安装32位JDK。注意:您可以在安装了JDK 64位之后安装JDK 32位,不会出现任何问题,并且JDK将被更新。

    0

    知会一下。 现在我已经搞定了:Tomcat 6.0.29和JRE 6u23,没有什么麻烦 - 安装JRE,安装Tomcat服务安装程序,完成工作。它可以完美地启动和运行。


    0

    只需修改步骤6,将其放入Java中而不是登录注册表值

    1. 在某些条件下,Tomcat未正确配置服务注册表值。它将自己指向32位版本的JRE / JDK,而不是64位版本。可以明确地完成(错误JDK / JRE的路径)或隐式地完成(“auto”值意味着使用指向32位版本的JAVA_HOME或JRE_HOME)。无论如何,强烈建议检查定义将用于Tomcat Windows服务的JDK / JRE版本的注册表值,请参见键HKEY_LOCAL_MACHINE \ SOFTWARE \ Apache Software Foundation \ Procrun 2.0 [Tomcat实例名称] \ Parameters * java * \ jvm,并将其指向正确的64位JDK / JRE(例如jvm = C:\ Program Files \ Java \ jdk1.5.0_15 \ jre \ bin \ server \ jvm.dll)。

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