>>分享Java Web开发技术,并且对孙卫琴的《Tomcat与Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 23924 个阅读者 刷新本主题
 * 贴子主题:  Tomcat版本与JDK版本的对应关系 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2018-07-03 10:15:51     消息  查看  搜索  好友  邮件  复制  引用

Tomcat和JDK版本的对应关系
当我们在谈论Tomcat与JDK版本的对应关系的时候,我们实际上在讨论两个问题。

第一个是,我们想安装了某个版本的Tomcat(比如Tomcat7),需要安装哪个版本的JDK,才能把Tomcat运行起来。

第二个是,如果我们安装某个Tomcat+JDK组合(比如Tomcat7+JDK1.7),能否把我们某个版本JDK(比如JDK1.6)编写的网站给运行起来。



对于第一个问题,可以通过官网的这张图最后一列得到答案(下载的Tomcat的RUNNING.txt和RELEASE-NOTES也有当前版本所需JDK说明):

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

所以如果安装Tomcat7要安装JDK1.6及之后版本才能正常启动Tomcat(如果使用不匹配的jdk比如Tomcat7用jdk1.5执行startup.sh输出也提示启动成功,但其实进程没成功启动的,查看logs/catalina.out会看到报错:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file)



对于第二个问题,其实到此我们要言明,第一个问题和第二个问题都有一个同样本质的答案:低版本JDK无法运行高版本JDK编译的代码。

所以如果你安装了Tomcat7+JDK1.7这个组合,那么JDK1.7及之前版本JDK编写的网站可以正常运行,JDK1.8编写的不可以。

(同理我们可以推测,Tomcat7是用JDK1.6编译的,Tomcat8是用JDK1.7编译的,Tomcat9是用JDK1.8编译的)




程序猿的技术大观园:www.javathinker.net
网站系统异常


系统异常信息
Request URL: http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=475&skin=0&saveSkin=true&pages=1&replyNum=

java.lang.NullPointerException

如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员