Tomcat和JDK版本的对应关系
当我们在谈论Tomcat与JDK版本的对应关系的时候,我们实际上在讨论两个问题。
第一个是,我们想安装了某个版本的Tomcat(比如Tomcat7),需要安装哪个版本的JDK,才能把Tomcat运行起来。
第二个是,如果我们安装某个Tomcat+JDK组合(比如Tomcat7+JDK1.7),能否把我们某个版本JDK(比如JDK1.6)编写的网站给运行起来。
对于第一个问题,可以通过官网的这张图最后一列得到答案(下载的Tomcat的RUNNING.txt和RELEASE-NOTES也有当前版本所需JDK说明):

所以如果安装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编译的)
下图是中我用JDK1.7编译了一个HelloWorld程序,可以看到JDK1.7和1.8运行正常,而JDK1.6运行报错(Unsupported major.minor version 51.0):
(51.0是内部编号,JDK1.4--48.0,JDK1.5--49.0,JDK1.6--50.0,JDK1.7--51.0,JDK1.8--52.0)

参考:
http://java12345678.iteye.com/blog/2257533
http://blog.csdn.net/sum__mer/article/details/52452432
http://java12345678.iteye.com/blog/2257533
http://www.oschina.net/question/207494_84715
Tomcat和JDK版本的对应关系的更多相关文章
- Solr与JDK对应版本关系,Tomcat与JDK版本对应关系
最新在部署solrCloud集群,由于自己机器上用的JDK都是JDK1.7的,然后我就从网上下载了最新下载了最先的solr6.6.0和最新的Tomcat9.0,部署了一下,开始报错,提示solr和JD ...
- linux 安装jdk及tomcat指定jdk版本推荐
方法1:用yum命令安装 1. 查看当前jdk版本:Java –version,或者是:rpm -qa | grep jdk 2. 删除当前jdk:yum -y remove java-1.6 ...
- 为tomcat指定JDK版本
可以为tomcat指定JDK. 当系统中安装有多个版本的jdk时,可以为tomcat指定jdk版本. 在catalina.sh文件和setclasspath.sh文件开头的空白处加上如下一行: exp ...
- Tomcat修改jdk版本
tomcat修改jdk版本 修改tomcat bin目录下的catalina.sh和setclasspath.sh文件,添加以下内容 export JAVA_HOME=/home/nodemanage ...
- tomcat和jdk版本兼容(Tomcat版本要比jdk高)
用的tomcat是低版本的,但是用的jdk却是高版本的,用Servlet做的项目运行都没有问题,但是直接运行jsp却死活都运行失败. 最后发现是tomcat和jdk的版本问题造成的. 总结如下: to ...
- linux 安装多个版本JDK,指定tomcat的jdk版本
JDK的下载可以直接到官网下载,这里不再介绍 一.安装JDK 7 vi /etc/profile #set java environmentexport JAVA_HOME=/usr/java/jdk ...
- 在服务器上给tomcat指定jdk版本
export JAVA_HOME=/usr/local/jdk1.8 --路径是:Jdk8所在的目录 export CATALINA_OPTS="-Djava.awt.headless=tr ...
- 多Tomcat多JDK版本的Window服务添加配置方式
本文所讲的配置方式只适合Windows系统,所牵扯的软件2个解压的jdk,2个解压的tomcat. 1.环境初始化 将两个jdk和tomcat解压到我们指定的目录下.修改两个tomcat的端口:必须修 ...
- tomcat指定JDK版本
在windows环境下以批处理文件方式启动tomcat,只要运行<CATALINA_HOME>/bin/startup.bat这个文件,就可以启动Tomcat. 在启动时,startup. ...
随机推荐
- 用Let's Encrypt实现Https(Windows环境+Tomcat+Java)
补充1: 已解决20的部分问题,移步这里 单域名下多子域名同时认证HTTPS 补充2: 之前忘了说了,我这个方法只对Tomcat7.0以上有用(要不然就是8.0...) 我自己用的是9.0 原因好像是 ...
- Java中的long与double的区别
1.long与double在java中本身都是用64位存储的,但是他们的存储方式不同,导致double可储存的范围比long大很多 2.long可以准确存储19位数字,而double只能准备存储16位 ...
- Error: Program type already present: com.google.gson.FieldAttributes 的解决方法
在app中的build.gradle中加入如下代码, configurations { all*.exclude group: 'com.google.code.gson' all*.exclude ...
- spring controller方法和jstl
1复杂类型查询:查询条件已经多于一个实体类中的属性 1)可以创建一个类用于组合查询条件 基础类 public class Items { private Integer id; private Str ...
- SQL server2008安装与管理
1.1 启动SQL server的三种形式 后台启动:计算机->右键->管理->->服务和应用程序->服务->sql server(***) Sql server ...
- 随机--相关(Fisher_Yates算法)
Fisher_Yates算法 void ShuffleArray_Fisher_Yates(char* arr, int len) { int i = len, j; char t ...
- spring框架 AOP核心详解
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...
- 你想了解Go语言开发吗?
大家先了解一下什么是Go语言? Go语言是谷歌2009发布的第二款开源编程语言.Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全.支持 ...
- cordova + Vue 开发 APP 上手指南
什么是 cordova cordova 是由 Apache 基金会支持的,使用 HTML5 + CSS3 + JS 来构建多平台 APP 程序的开发框架.其支持调用手机系统(Android.IOS.W ...
- win10新系统修改onedrive目录,提示找不到OneDrive目录
win10不知更新了什么,x1c非常卡一跳一跳的,很多年没见过了-_-!!( 原因排查:http://www.cnblogs.com/xuanmanstein/p/8878180.html). 于是重 ...