问题分析:
在编辑 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 的版本号为当前使用的版本号!