Tomcat 7支持Java 8吗?

11

Tomcat的官方页面上说Tomcat 7支持Java 8。如果我下载并使用Java 8运行,它可以正常工作。

但是,在Openshift上是Tomcat 7(JBoss EWS 2.0)。在这个网页上说EWS 2.0 不支持Java 8。如果我将我的Java 8应用程序部署到Openshift(Tomcat 7),它无法正常工作。

为什么呢?


我尝试使用这个链接:https://dev59.com/wGAg5IYBdhLWcg3wLYaI#23895161,在Openshift上安装Java 8到Tomcat 7,但是对我来说它并没有起作用。我遇到了错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping':
Initialization of bean failed; nested exception is 
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading 
class [pl.xxx.controller.HomeController] for bean with name 'homeController'     
defined in file [/var/lib/openshift/xxx/app-    
root/runtime/dependencies/jbossews/webapps/web1/WEB-
INF/classes/xxx/controller/HomeController.class]: problem with class file or
dependent class; nested exception is java.lang.UnsupportedClassVersionError: 
xxx/controller/HomeController : Unsupported major.minor version 52.0 (unable to
load class xxx.controller.HomeController)

“Unsupported major.minor version 52.0” 表示 Java 版本不正确(应该是 Java 8 而非 Java 7)。请注意,保留 HTML 标签。

你所提到的异常中有一个Spring bean。这可能是一个Spring问题。你正在运行哪个版本的Spring?在JBOSS上的Tomcat可能与Apache网站上的版本不同。我会相信JVM,而不是你列出的引用。 - duffymo
我正在使用Java 8的Tomcat,但没有使用Spring。 - user207421
1
这是因为他们的机器安装了Java JRE 7。 - Luiggi Mendoza
我的应用在我的电脑上使用Tomcat 7可以工作,但是在Openshift上的Tomcat 7上无法工作。如果我在pom.xml中将Maven Java编译器版本从1.8更改为1.7,它也可以在Openshift上工作。我的版本是Spring 4.1.6,Maven 3.3,Java编译器1.8。 - mkczyk
请注意,您提供的链接中的EWS网站并未说明EWS不支持Java 8,只是表明Java 8不在“企业支持”的配置之列。例如,如果您购买了RedHat的支持,并且在Java 8上运行,他们可以要求您在Java 7上运行,并且不会修复Java 8下的问题。话虽如此,我敢打赌EJP的回答是正确的:您正在Java 7的运行时环境中运行使用Java 8编译的代码。这就是"Unsupported major.minor version"告诉您的信息。 - Olaf Kock
2个回答

8
< p >“Unsupported major.minor version 52.0”错误表示您有一个Java 8类文件,但使用的是Java <= 7 JRE。因此,您没有成功地为Tomcat安装Java 8。您可能需要调整Tomcat配置以使其使用Java 8。


5
如果你在Windows系统上将Tomcat作为服务运行,你可能需要通过以下命令更改Tomcat使用的JRE:
tomcat7w.exe //ES/<your_service_name>

这应该会带您进入此对话框:

enter image description here

确保选择“使用默认值”或正确的“Java虚拟机”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接