在服务器上设置Tomcat 7:“;注意:JAVA“主页应该指向JDK而不是JRE”;。。。为什么?

在服务器上设置Tomcat 7:“;注意:JAVA“主页应该指向JDK而不是JRE”;。。。为什么?,java,tomcat,configuration,Java,Tomcat,Configuration,我正在尝试在我的服务器实例(WindowsServer2008R2企业版的新安装)上设置Tomcat6。我想通过URL提供JavaEE服务 它通过服务器上的localhost工作。我将.war文件放入我的/webapps,在/bin中运行startup.bat,然后在浏览器中导航到localhost:80/mywebservice,以直接进入我的欢迎页面 当我试图通过运行service.bat(在/bin文件夹中)来创建服务时,我收到一条错误消息,上面说: The JAVA_HOME envir

我正在尝试在我的服务器实例(WindowsServer2008R2企业版的新安装)上设置Tomcat6。我想通过URL提供JavaEE服务

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

当我试图通过运行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作为服务运行,而不是在本地主机上运行?JDK中运行Web服务需要什么

Web容器需要JDK来支持JSP等源代码的编译,因为JDK中存在编译器,它也需要JDK。(这是它可能需要JDK的原因之一)

将JAVA_HOME作为系统变量而不是环境变量,重新启动应用程序(Tomcat)。它应该很好用


或者,您可能面临与前面讨论的问题相同的问题

是的,我们需要jdk来运行您的需求。。因为您提供的是.war文件,所以我们需要jar命令从war、jar中提取内容。。文件夹。jar命令在JRE中找不到,但仅在JDK中找到。如果您希望签出JDK、JRE。这是我观察到的最基本的东西,与其他东西不同。

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


但是,如果指定JAVA_HOME,Tomcat希望它指向完整的JDK安装。如果您想使用JRE,那么您需要设置JRE\U HOME而不是JAVA\U HOME。

检查JAVA\U HOME是否设置正确,如果您安装了JDK,则为JRE创建JRE\U HOME,将为JDK设置JAVA\U HOME。也可以在
“C:/Progra~1/…”
“C:/Program Files/…”
之间切换,以确保系统正确识别路径

从JRE\u HOME/JAVA\u HOME变量的末尾删除分号。不应该有分号

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

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


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

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

这不是他的问题。他的问题是为什么它需要一个JDK。不是,这只是一个默认消息,当出现问题时会显示。