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. ...
随机推荐
- 【Java】【泛型】
泛型的优点使⽤泛型有下⾯⼏个优点:1.类型安全2.向后兼容3.层次清晰4.性能较⾼,⽤GJ(泛型JAVA)编写的代码可以为java编译器和虚拟机带来更多的类型信息,这些信息对java程序做进⼀步优化提 ...
- Codeforces Round #135 (Div. 2) D. Choosing Capital for Treeland dfs
D. Choosing Capital for Treeland time limit per test 3 seconds memory limit per test 256 megabytes i ...
- ege demo
#include <ege.h> const float base_speed = 0.5f; const float randspeed = 1.5f; //自定义函数,用来返回一个0 ...
- python shelve模块
#coding=utf- import shelve f = shelve.open("shelve_test") f['info'] = "alex" f[, ...
- memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
1.在http://libevent.org/ 下载libevent-2.0.22-stable.tar.gz 2.tar -zxvf libevent-2.0.22-stable.tar.gz ...
- L1-033 出生年
不难,代码: #include <queue> #include <functional> #include <stdio.h> #include <stri ...
- VC静态调用DLL(lib)
1. #pragma comment(lib, "libxml2.lib")#pragma comment(lib, "iconv.lib")#pragma c ...
- Qt5_当前exe所在路径
可以通过以下方式来获取: 1. #include <QDir>#include <QDebug> QDir dir; qDebug() << "curre ...
- Windows上安装运行hadoop
0.自己编译安装步骤在这里,有英文版本连接:<英文传送门>. 自己编译尝试后不成功,换为下面使用别人编译好的版本的方法.参考博客:<初学hadoop,windows下安装> 1 ...
- 第 8 章 容器网络 - 049 - 准备 Overlay 网络实验环境
overlay环境准备 在docker-machine (10.12.31.21)的基础上 docker主机 host1 (10.12.31.22) host2 (10.12.31.23) 在dock ...