我已经启动并运行了 Tomcat 6.0。我去调整内存大小,发现它运行在 Sun JDK 1.6 上客户JVM。我没有安装 Sun 服务器 JVM:
C:\>java -client -version
java version "1.6.0_16"
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing)
C:\>java -server -version
Error: no `server' JVM at `C:\appl\java\jre6u16\bin\server\jvm.dll'.
澄清一下:我知道如何将 Tomcat 中的 JVM 从客户端切换到服务器。我只需选择最合适的服务器 JVM。
我会注意到客户端和服务器 JVM 之间的巨大差异吗?如果我想要 Sun 服务器 JVM,我是否必须重新安装整个 JDK?是否有其他适合运行 Tomcat 的免费服务器替代方案?
答案1
这里(来自Sun 发行说明)是我一直在寻找的答案,至少对于如何确保 JDK 服务器启动并运行而言:
jre\bin\server\
在 Microsoft Windows 平台上,JDK 包括 Java HotSpotTM Server VM 和 Java HotSpotTM Client VM。但是,Microsoft Windows 平台的 JRE 仅包括 Java HotSpotTM Client VM。希望将 Java HotSpotTM Server VM 与 JRE 一起使用的用户可以将 JDK 的 jre\bin\server 文件夹复制到 JRE 中的 bin\server 目录中。软件供应商可以将 Java HotSpotTM Server VM 与 JRE 的重新分发一起重新分发。
答案2
您是否尝试过使用 TOMCAT_HOME/bin/ 下的文件 setenv.sh?您必须手动创建此文件(例如通过 vi),然后添加 Java 选项。例如:
cd TOMCAT_HOME/bin
vi setenv.sh
在此文件中添加以下行:
导出JAVA_OPTS='-服务器'
这样,您的 JVM 应该以服务器模式运行。
答案3
是的,您可能需要服务器 JVM。它针对服务器端性能进行了调整。除非您努力进行基准测试,否则您不会知道确切答案,但我还没有遇到任何人说客户端 VM 更适合他们的 Tomcat 设置。
至于您是否需要下载整个 JDK ——不幸的是,我不知道。
答案4
-server 和 -client 只是改变普通 sun JVM 性能特征的标志。如果您未指定,JVM 会进行猜测。在这种情况下,它会猜测您有一台客户端类机器,您只需使用 -server 标志运行 java 即可更改它。
看:http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html