【问题标题】:Setting up Tomcat 7 on server: "NB: JAVA_HOME should point to a JDK not JRE"... Why?在服务器上设置 Tomcat 7:“NB:JAVA_HOME 应该指向 JDK 而不是 JRE”... 为什么?
【发布时间】:2013-12-26 11:38:45
【问题描述】:

我正在尝试在我的服务器实例上设置 Tomcat 6(全新安装的 Windows Server 2008 R2 Enterprise)。我想通过 URL 提供 Java EE 服务。

它通过服务器上的localhost 工作。我将 .war 文件放在我的 /webapps 中,在 /bin 中运行 startup.bat,然后在浏览器中导航到 localhost:80/myWebServce 以定向到我的欢迎页面。

当我尝试通过运行 service.bat(在 /bin 文件夹中)创建服务时,我收到一条错误消息:

The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

我的问题是:为什么?我认为 JDK 只是 JRE + 一些开发工具(IDE、调试器等)。为什么tomcat需要一个JDK来作为服务运行,而不是在localhost上?运行 Web 服务所需的 JDK 中有什么?

【问题讨论】:

    标签: java tomcat configuration


    【解决方案1】:

    从 JRE_HOME / JAVA_HOME 变量的末尾删除分号。不应该有分号……

    变量:JAVA_HOME 值:C:\Program Files\Java\jdk1.6.0(注意:末尾没有分号)

    变量:JRE_HOME 值:C:\Program Files\Java\jre1.6.0(注意:末尾没有分号)

    应用上述更改并成功运行您的 tomcat。

    【讨论】:

      【解决方案2】:

      Tomcat 不需要 JDK。 Tomcat 附带 Eclipse JDT 编译器,Tomcat 使用该编译器作为 *.jsp -> *.java -> *.class 进程的一部分,将 JSP 转换为已编译的 Servlet。

      但是,如果您指定 JAVA_HOME,Tomcat 期望它指向完整的 JDK 安装。如果要使用 JRE,则需要设置 JRE_HOME 而不是 JAVA_HOME。

      【讨论】:

        【解决方案3】:

        我遇到了同样的问题。指定 JRE_HOME 并收到相同的错误消息。 删除系统环境变量 JAVA_HOME 并重新启动后,错误消息仍然存在。 原来我的 JRE 路径实际上是不正确的,错误消息只是令人困惑。

        【讨论】:

          【解决方案4】:

          Web 容器需要 JDK 以支持 JSP 等源的编译,因为编译器存在于 JDK 中,所以它需要相同的编译器。(这是它可能需要 JDK 的原因之一)

          【讨论】:

            【解决方案5】:

            将 JAVA_HOME 设为系统变量而不是环境变量,重新启动应用程序(Tomcat)。它应该可以正常工作。

            或者,您可能会遇到与here 讨论过的相同问题

            【讨论】:

            • 这不是他的问题。他的问题是为什么它需要 JDK。
            • 不是,这只是出现问题时显示的默认消息。
            【解决方案6】:

            是的,我们需要 jdk 才能运行您的要求。由于您提供 .war 文件,我们需要 jar 命令从 war、jar.. 文件中提取内容。 jar 命令在 JRE 中找不到,而仅在 JDK 中。如果您希望可以签出 JDK、JRE。这是我观察到的与其他事物不同的基本事物。

            【讨论】:

              【解决方案7】:

              检查 JAVA_HOME 是否设置正确,如果您安装了 JDK,请为 jre 创建 JRE_HOME,将为 JDK 设置 JAVA_HOME。还要在"C:/Progra~1/...""C:/Program Files/..." 之间交替,以确保系统正确识别路径

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2018-09-16
                • 2017-09-15
                • 2019-04-19
                • 2019-02-27
                • 1970-01-01
                • 2018-11-10
                • 1970-01-01
                相关资源
                最近更新 更多