【转】解决Unsupported major.minor version 49.0问题
问题集锦 2007-09-10 18:41:01 阅读47 评论0 字号:大中小
随着JDK版本的升级,尤其是JDK1.4升级到JDK5.0,在Java程序中我们往往会遭遇两种尴尬:
1 Unsupported major.minor version 49.0
2 当前的版本是49.0,需要的是48.0(大概是这个意思)
第一种情况在java应用程序、web应用程序都有遇到
第二种情况我遇到的是表现在web应用程序中
问题分析:
48,49是Java编译器内部的版本号,48表示是用JDK1.4来编译运行程序的,49表示是用JDK编译运行程序的
问题解决:
-
方法一
- 方式:重新用JDK1.4编译,并在JDK1.4的环境下(包括修改JAVA_HOME,PATH,CLASSPATH,Tomcat使用的JDK)运行;
-
效果:java应用程序可行;Web应用程序失败。
-
方法二
- 方式:采用JDK5.0编译,并在JDK5.0下运行(包括修改JAVA_HOME,PATH,CLASSPATH,Tomcat使用的JDK)
关于方法二的两点特殊补充
如果采用了方式二,即JDK5.0,要求Tomcat版本必须不能低于5.5*。问题是如果我需要用低于5.5*版本的Tomcat怎么办呢?
答案就是:将JDK5.0的lib目录下的tools.jar覆盖 TOMCAT安装目录/common/lib下面的tools.jar,然后重启TOMCAT5.0就可以了
如果你选择的是Eclipse+MyEclipse开发环境,并且你选择的是在Eclipse下启动Tomcat,千万记住,一定要在windows菜单preference选项弹出的perference对话框中,选择MyEclipse--Application Server--Tomcat5---JDK指定JDK为5.0
是不是搞定了IDE下的问题了呢?
如果在Tomcat5.0系列下还有问题的话,请跟踪系列二http://www.blogjava.net/crazycy/archive/2006/06/03/50150.html
解决办法:
1. java -version 看显示的JDK版本
2.path查看所有的路径设置(可以在所有路径中使用java关键词进行搜索),如:本人IBM笔记本,自动安装jdk1.4,c:\Windows\system32下有java.exe等命令。在控制面板:删除和添加程序中找到并删除即可。
3. 查看注册表,修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft下的关于1.4的jre和jvm的路径信息改为1.5的jdk的即可。
==========================================
非常感谢你的阅读,如果你觉得好或者对你有帮助,请积极给一个留言反馈以示鼓励。
倒霉的孩子,看过本系列的
第一篇之后,你搞定了么?!
估计有许多人依然不能;但是IDE环境中的绝对没有问题;
可是离开IDE(JBuilder、Eclipse+MyEclipse),只在Tomcat下运行依然不行,是不是?!不要问是不是Tomcat5.0系列不支持JDK1.5,我在
第一篇中已经告诉你怎么干了,可是为啥还不行呢?!甚至有人安装、卸载了好几次JDK1.4 JDK1.5,可怜啊;抱一起哭吧;我也遇到了这个问题。
在捣鼓了一顿后,总结如下:
只在Tomcat下运行,但是依然出现“Unsupported major.minor version 49.0”,我捣鼓了大概120分钟:
1. java -version 看显示的JDK版本
2. 如果显示版本是1.5,但还是不能运行,则必须验证如下两点:
* 是否按
第一篇教给你的格式做了,(没有的话,我则白白总结了,哎)
* 查看注册表,修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft下的关于1.4的jre和jvm的路径信息改为1.5的jdk的即可。
估计还是不行。
为啥?因为你安装Tomcat5.0系列时指定了JRE了啊,难道你以为环境变量里修改了就OK了么?
不是这样的。你进入Tomcat5.0的安装目录,bin下是不是有个tomcat5w.exe文件,你打开看看java标签项
看到Java Virtual Machine这个选项是什么了吧? 不是JDK1.5。
还等着干什么?! 修改,然后开始喝香槟庆祝郁闷解除了吧
Thanks very much to visit blog, welcome your feedback, your feedback is the Driver && Power to me
<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
rdf:about="http://www.blogjava.net/crazycy/archive/2006/06/03/50150.html"
dc:identifier="http://www.blogjava.net/crazycy/archive/2006/06/03/50150.html"
dc:title="又是48,49JDK版本不兼容(Unsupported major.minor version 49.0)(系列二)"
trackback:ping="http://www.blogjava.net/crazycy/services/trackbacks/50150.aspx" />
</rdf:RDF>
--><script type="text/javascript"></script>
# re: 又是48,49JDK版本不兼容(Unsupported major.minor version 49.0)(系列二)
分享到:
一个是怎么在tomcat5.0.x+jdk1.4.2下面跑用jdk1.5编译出来的程序,
一个是怎么用jre1.5来跑tomcat5.0.x
如果想实现第二个目标,最简单的方式其实是卸载tomcat,然后重新装一遍
呵呵;对,得把问题的焦点分离;
这种情况怎么解决呢?
Oracle 会把自己安装目录下的jre设置到Path 中比较靠前的位置,因此会出现java version_1.3.01错误。
解决:手动修改PATH环境变量,把oracle下的jre路径删除。
我使用cmd命令行的时候总是预先使用如下命令: set JAVA_HOME=..
set PATH=%JAVA_HOME%/bin:%PATH%
使用linux的时候则是
export JAVA_HOME=..
export PATH=$JAVA_HOME/bin:$PATH