2013-12-09 115 views
5

我想在我的服务器实例(全新安装Windows Server 2008 R2 Enterprise)上设置Tomcat 6。我想通过URL提供Java EE服务。在服务器上设置Tomcat 7:“注意:JAVA_HOME应该指向JDK而不是JRE”......为什么?

它通过服务器上的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作为服务运行,但不在本地主机上运行?运行Web服务所需的JDK中有什么?

回答

5

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

但是,如果指定了JAVA_HOME,那么Tomcat希望指向完整的JDK安装。如果你想使用JRE,那么你需要设置JRE_HOME而不是JAVA_HOME。

0

Web容器需要JDK以支持像JSP源编译,因为编译器在JDK现有的IT要求是相同的。(这就是为什么它可能需要JDK的原因之一)

0

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

或者你可能会面临同样的问题作为讨论here

+1

这不是他的问题。他的问题是,如果它需要一个JDK。 –

+0

这不是,那只是一个默认消息,当出现错误时显示。 – Daniel

0

是的,我们需要JDK序来运行你的要求..因为你提供的.war文件,我们需要jar命令来提取战,坛子内容..文件。 jar命令在JRE中找不到,但只能在JDK中找到。如果你希望你可以检出JDK,JRE。这是我除了其他事情之外的基本观察。

0

检查JAVA_HOME是否设置正确,如果您安装了JDK,为jre创建JRE_HOME,则将为JDK设置JAVA_HOME。还"C:/Progra~1/...""C:/Program Files/..."之间交替,以确保系统从JRE_HOME/JAVA_HOME变量的端正确

6

删除分号识别的路径。不应该有分号......

变量:JAVA_HOME 值:C:\ Program Files文件\的Java \ jdk1.6.0(注:结尾没有分号)

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

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

+0

它为我工作.. :)谢谢。 – santoshM

相关问题