【发布时间】:2011-10-20 10:56:39
【问题描述】:
我们有一个安装 Tomcat 的安装程序。怎么知道Tomcat是32位版本还是64位版本?
【问题讨论】:
标签: tomcat architecture 64-bit 32-bit
我们有一个安装 Tomcat 的安装程序。怎么知道Tomcat是32位版本还是64位版本?
【问题讨论】:
标签: tomcat architecture 64-bit 32-bit
正如 Pierre 所提到的,在 Tomcat 官方站点中只有一个可从 apache.org 获得的安装程序可以在 32 位和 64 位上运行。这是因为 Tomcat 本身是一个 Java 应用程序并且它是独立于平台的(Java VM 将是 32 位或 64 位)。在任何情况下,您是否安装了 32 位或 64 位版本的 Java 都没有关系,但是根据您安装的 Java 版本,它将安装 32 位或 64 位的 Windows 服务包装器。
在 32 位系统中,您只能安装 32 位 Java 版本。在 64 位系统上,您可以安装 Java 32 位版本或 Java 64 位版本。如果您安装了 64 位版本,则 Tomcat 的默认安装目录将安装为 64 位应用程序。这意味着安装程序将使用“Program Files”文件夹作为默认安装目录,并且 Windows 注册表中 Tomcat 服务的条目将放置在“HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation”中。但是,如果您使用 32 位版本的 Java,Tomcat 将作为 32 位应用程序安装。安装程序的默认安装目录将位于“Program Files (x86)”中,Windows 注册表中的服务条目将位于“HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Apache Software Foundation”中。这是 64 位 Windows 系统中 32 位应用程序的默认设置。
与 Windows 服务包装器一起,还有另一个组件,它对于 32 位和 64 位版本的 Tomcat 是不同的。它是APR/native library for Windows,但它不包含在安装程序中。在 Tomcat 网站中,您还可以找到包含它的其他 Tomcat distributions,这些发行版确实取决于您使用的 JVM 版本(32 位或 64 位)。
【讨论】:
对于 Windows,只有一个安装程序能够同时安装 32 位和 64 位版本。
http://tomcat.apache.org/download-60.cgi#6.0.32
您可以尝试安装它,然后运行 ./bin/version.[bat|sh] 脚本。
查看输出中的“架构”字段。
【讨论】:
在我的 Windows 7 64 位机器上:如果 java 是 32 位,Tomcat 7 默认安装到 Program files (x86) 目录。但是注册表项被放在两个地方:
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation
和HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation
这意味着上面的帖子是错误的,至少在 Windows 7 64 位上是错误的。
Tomcat 7 没有一点点,真的:它是一个 Java 应用程序。它的位数取决于安装的Java的位数。
可以同时安装 64 位和 32 位版本的 Java。 如果 Tomcat 7 安装程序发现(仅)安装了 Java 7 32 位,那么它会将 tomcat 7 安装到 Program files (x86)目录。但是 Tomcat 7 安装程序将选择 64 位版本的 Java,并将其自身安装到 Program Files 文件夹中。
但是在这种情况下你不能假设 Tomcat 7 使用 64 位 Java,因为用户可能在安装 tomcat 7 后添加了 64 位 Java,而 tomcat 7 不知道将其“位”从 32 更改到 64 时发生这种情况。
到目前为止,我一直无法找到一种可靠的方法来确定正在使用哪个 JRE Tomcat。使用像Program files (x86) 这样的文件夹名称没有任何意义,因为用户可以将此位置更改为他们喜欢的任何位置。
至于上面这个答案之前的最后一个答案,Tomcat 7 似乎没有描述的 version.bat 或 version.sh 文件,因此 AFIK 也不再准确。
【讨论】:
简单,启动tomcat,进入任务管理器。如果它是 32 位的,它将显示 *32 后缀到进程名称。确保您查看的是 tomcatx.exe 而不是 tomcatxw.exe 进程。我认为在某些版本上会显示 java 进程而不是 tomcat。
【讨论】: