返回列表 发帖

Tomcat和JDK版本兼容性列表

http://tomcat.apache.org/whichversion.html

JDK_Tomcat.jpg (30.79 KB)

JDK_Tomcat.jpg

欢迎光临:逐梦论坛

tomcat 中出现的jdk版本不匹配的问题

今天用tomcat 时出现了两个问题,现附解决方案,便于以后查找
1,  Tomcat 异常:Parsing error processing resource path
2.Tomcat异常:Unsupported major.minor version 49.0
原因是开发环境下jdk的tools.jar的版本和tomcat下的版本不同引起的,具体察看方法如下:
1、找到tomcat安装目录下的common/lib/tools.jar,用压缩软件打开,察看META-INF/MANIFEST.MF,内容如下:
Manifest-Version: 1.0
Created-By: 1.5.0_06 (Sun Microsystems Inc.)
可知其版本为1.5.0
2、找到开发环境,即jdk的目录下的lib/tools.jar,同样用压缩软件打开,察看META-INF/MANIFEST.MF,内容如下:
Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)
可知其版本为1.4.2
如果两个版本不同,则抛出如上异常
解决方法:
将开发环境下的tools.jar覆盖到tomcat/common/lib下的tools.jar就可以了!
欢迎光临:逐梦论坛

TOP

安装多个jdk,多个tomcat版本的冲突问题

一个服务器两个jdk,一个是jdk1.4,一个是jdk1.6。
同样tomcat版本是,tomcat5.0和tomcat6.0。都安装在一个服务器上,这个冲突问题,弄了好久,让人头疼啊
tomcat5.0匹配jdk1.4,
tomcat6.0匹配jdk1.6,
1.首先指定tomcat匹配的jdk
tomcat/bin目录下
catalina.bat
setclasspath.bat
两个文件用记事本打开,都添加一句话
setJAVA_HOME=jdk路径
以为添加好tomcat的匹配路径,就可以了。
2.但是,低版本tomcat中的项目,看似是没问题了,但是,服务器启动后,有些功能还是出不来。查了很久还是jdk1.6和jdk1.4冲突问题
tomcat5.0低版本一定要tomcat6.0启动之前完成启动
所以一定要设置服务器启动顺序。把tomcat5.0启动设置tomcat6.0之前
打开注册表,HKEY_LOCAL_MACHINE->SYSTEM->Services->新建多字符串值,名称为:DependOnService,
值为:
tomcat5.0
tomcat6.0
这样即可
欢迎光临:逐梦论坛

TOP

jdk、tomcat版本问题

我们现在的实施全部都是jdk1.5_bulid12+tomcat5.0.30,非常稳定,不求高级,只求稳定。稳定性是系统的死穴。
JDK的配置:
我的电脑-属性-高级-环境变量(假设你安在C:\)
JAVA_HOME=C:\JDK
CLASSPATH=.;\JDK\lib\tools.jar;
C:\JDK\lib\dt.jar
PATH的最后加上;C:\JDK\bin
(这个会吧!)
下面是那个麻烦的tomcat!!!!
两种方式:
1,直接将插件方在eclipse的plugins目录下。
2,编写link文件
tomcatplugin为例
将tomcatplugins释放到c:\eclipse_plugins下,组织文件夹为
c:\eclipse_plugins-tomcatpluginV3-eclipse-plugins-com.sysdeo.eclipse.tomcat_3.0.1
建好后,回到eclipse文件夹下,新建一个links目录,在该目录下新建个文件tomcat.link(文件名任意)
内容为:path=c:\ecplise_plugins/tomcatPluginV3
打开eclipse,可以看到菜单上多了tomcat选项,如果不成功,删除configuration下除config.ini的所有文件夹,重启eclipse.
好累!这样应该就可以了,我用的是linux系统,感觉容易些,xp的这样应该就可以用了。
配置tomcat使用特定的java sdk版本的方法非常简单:
1、修改tomcat/bin/catalina.bat,增加 set JAVA_HOME=XXXXXX,其中XXXXXX为jdk 的路径,如c:\j2sdk1_4
2、修改tomcat/bin/setclasspath.bat,同样增加 set JAVA_HOME=XXXXXX
其实这个问题是很初级的,但是一般人常常忘了步骤2,导致的结果就是特定版本的java启动tomcat,但是jdk用的还是系统默认的(在系统的JAVA_HOME中的设置)。
问题分析:
在编辑 java 文件或运行 web 时会遇到 Unsupported major.minor version 49.0 异常, 48 , 49 是 Java 编译器内部的版本号, 48 表示是用 JDK1.4 来编译运行程序, 49 表示是用 JDK 编译运行程序,报错的原因是运行的 JDK 与编译时的 JDK 版本不同!编译时使用 1.5, 运行使用 1.4 。
查找原因 一:
开发环境下 JDK 的 tools.jar 的版本和 web 布署的的版本不同引起的:
1 、以 tomcat 为例,查找到 tomcat 安装目录下的 common\lib\tools.jar ,用压缩软件打开,察看 META-INF\MANIFEST.MF ,内容如下:
Manifest-Version: 1.0
Created-By: 1.5.0_06 (Sun Microsystems Inc.)
可知其版本为 1.5.0
2 、找到开发环境 jdk 的目录下的版本号
dos 命令行中 下运行 java -version 查看版本号,或在配置中找到起作用的那个安装 JDK 目录下,查找 lib\tools.jar ,打开察看 META-INF\MANIFEST.MF 内容否  Created-By: 1.4.2 (Sun Microsystems Inc.)
如果两个版本不同,则抛出如上异常
查找原因 二:
编译环境的问题
如果使用 Eclipse+MyEclipse 开发环境,在以上条件都配置正确的基础上查看 eclipse 使用的 JDK 编译版本。
解决方法分以下三种方式:
1、 将 JDK 下的下的 tools.jar 覆盖到 tomcat\common\lib 下的 tools.jar ,使 tomcat 发布的版本与 JDK 一致;
2、 配置安装 JDK ,使 JDK 版本与 tomcat 本身使用的 JDK 的版本号一至,如修改 JAVA_HOME,PATH,CLASSPATH,Tomcat 使用的 JDK 设置为当前的 tomcat 使用的版本号
3、 如以上方法都设置正确,系统任无法运行,则设置 eclipse 编译设定方法: Windows->Preferance->Java->Compiler-> 页面。将 ..JDK Compliance level->Compiler compliance level 调成 1.4 。系统将自动编译成1 .4
说明: 1、使用 JDK5.0 ,要求 Tomcat 版本必须不能低于 5.5* ,如果我需要用低于 5.5* 版本的 Tomcat ,将 JDK5.0 的 lib 目录下的 tools.jar 覆盖 TOMCAT 安装目录 /common/lib 下面的 tools.jar, 然后重启 TOMCAT5.0 就可以了
2、如果你选择的是 Eclipse+MyEclipse 开发环境 , 并且你选择的是在 Eclipse 下启动 Tomcat, 要在 windows 菜单 preference 选项弹出的 perference 对话框中 , 选择 MyEclipse--Application Server--Tomcat5---JDK 指定 JDK 的版本号为当前使用的版本号!
jdk是编译运行java类文件必须的工具,tomcat是一种web服务中间件,运行jsp不需要tomcat,但必须要有jdk,如果是开发jsp和发布jsp的产品需要用到web中间件了,   
tomcat是中间件的一种
打个比喻:jdk是猪肉,tomcat是锅,想吃jsp(熟肉),就将肉放到锅里面!
jdk和Tomcat没有什么关系。不知道你怎么会产生这种疑问,Tomcat是一个WEB服务器软件。   
我们将JSP或Servlet发布在其中。Tomcat负责处理远端放问请求调用相应的JSP页面。
两个都要.如果没有jdk,你的tomcat是不能正常运行的,tomcat没有自带jdk,而jsp运行必须要jdk.   
tomcat是web   container,当有请求时,tomcat会自动将jsp里面的java程序部分提取出来,调用jdk将java程序编译成class,然后再执行这个class.(你到tomcat的work目录下看看,你可以找到从jsp里面提取出来的java程序,   ***_jsp.java,   也有编译后的class文件,   ***_jsp.class)   
jsp其实象servlet的扩展,   不同servlet的是,它只要源程序放置在web   container里面就行了,   
不用事先编译.
还不明白你就去看看jsp的运行原理,再查查你的tomcat本身的安装目录有没有自带jdk
jdk编译     tomcat+jdk运行
jdk主要是为tomcat运行java代码提供java运行环境,还有jdk对像javabean,servlet等提供编译

jdk: java development kit,java开发套件
tomcat : apache的顶级项目,是一个servlet的容器,常用的服务器
myeclipse: 流行的集成开发环境,针对java企业应用做了很多优化
jdk: java development kit,里面包含java开发的api,通常jdk中带有虚拟机JVM等。
tomcat : apache的项目,是一个servlet的容器,常用的服务器。安装的时候需要制定JDK的位置,因为tomcat需要JDK的类库。
myeclipse:这个是针对eclipse开发的插件,作用对eclipse很大,能够方便的创建UML工程,Database工程,以及web2.0工程等。安装的时候需要指定eclipse的安装路径,也可以通过eclispe目录下面的links文件指向myeclipse位置。
欢迎光临:逐梦论坛

TOP

返回列表

Powered by Discuz! 7.2   论坛QQ群:逐梦论坛群

© 2001-2021 Comsenz Inc. 鲁公网安备 37120302000001号