`

理解Unsupported major.minor version 49.0为何错误

    博客分类:
  • java
阅读更多
今天一位同事在发布一个portlet到ibm portal时报错,于是叫我去帮忙。我们打开日志查看异常,是一个UnsupportedClassVersion错误,还说 Unsupported major.minor version 49.0
我虽然猜到了是class版本不兼容, 大概是用了不对应的jdk编译出不兼容的class导致的。由于was服务器是jdk1.4, 那么我就检查了他用的jdk, 果然用了1.5。
于是换用1.4,重新编译打包, 这下顺利的发布成功了。

事情到这里已经结束了, 不过我还是觉得那个major.minor version 49.0很奇怪,这个class的版本是怎么定的?49难道就是jdk1.5编译的版本号?于是搜索了一下, 还真有相关的资料,不错不错。
这篇文章写的很好,解释的很清楚。
http://www.blogjava.net/Unmi/archive/2007/12/04/165035.html
我前面猜想的jdk1.5编译出的class版本是49也没错,不过并非一定要更换jdk1.4才能搞定以上的问题, javac加上参数-target 1.4 -source 1.4 也是能搞定的。只要保证编译出来的class版本小于或等于was的jvm能支持最高版本即可。

另外还有一个有趣的新发现, 本以为如果服务器限制了jdk1.4,那么我们就不能用jdk1.5写程序了,也就不能用泛型、增强的循环这些特性了, 但这些还真就成了可能的。上文中提到的Retrotranslator 能很好帮助我们做到jdk1.5的代码跑到jdk1.4的jvm上:
http://www.blogjava.net/Unmi/articles/124166.html
有机会去试试看。
分享到:
评论
2 楼 Unmi 2010-11-10  
文中的链接已更换至:
http://unmi.cc/unsupported-major-minor-version-49-0-inside
1 楼 Unmi 2008-10-06  
很感谢楼主给以我写的这两篇文章如此的赞誉。

相关推荐

    jdk1.5环境下编译的jar包在JDK1.4环境下运行

    这里我们讨论的焦点是“JDK1.5环境下编译的jar包在JDK1.4环境下运行”所遇到的问题,具体表现为“Unsupported major.minor version 49.0”的错误。这个错误的根源在于Java字节码版本不兼容。Java字节码版本与JDK版本...

    ssh框架错误总结

    在使用JUnit/StrutsTest时,可能会遇到java.lang.UnsupportedClassVersionError: junit/framework/TestListener (Unsupported major.minor version 49.0)错误。 解决方法:根据JDK版本选择合适的JUnit版本。如果...

    MyEclipse 5.0GA + WebLogic 9.2 配置详解

    其次,如果选择J2EE 1.3进行开发,可能会遇到“Unsupported major.minor version 49.0”的错误,这是由于WebLogic 8不支持JDK 1.5导致的。为了解决这个问题,你可以选择使用JDK 1.4重新编译项目,或者升级WebLogic到...

    flex与 java 通信常见错误

    Unsupported major.minor version 49.0 ``` **错误原因:** 此错误表明Java运行环境与编译时的Java版本不兼容,通常是由于以下原因导致: 1. **编译时使用了较高版本的Java SDK,但运行环境只支持较低版本。** 2....

    weblogic配置

    - WebLogic 8不支持JDK 1.5,因此如果使用JDK 1.5编译的程序尝试部署到WebLogic 8上,会遇到"Unsupported major.minor version 49.0"的错误。解决方案是使用JDK 1.4重新编译代码,或者升级WebLogic到支持JDK 1.5的...

    MyEclipse+WebLogic配置详解[参考].pdf

    WebLogic 8不支持JDK 1.5,这意味着使用JDK 1.5编译的程序在WebLogic 8上运行时会报"Unsupported major.minor version 49.0"错误。解决此问题的方法是使用JDK 1.4重新编译代码,或者升级WebLogic到9.2版,因为...

    J2ee开发环境配置(weblogic)

    2. **JDK版本问题**:WebLogic 8不支持JDK 1.5,这意味着使用JDK 1.5编译的程序无法在WebLogic 8上部署,会报错“Unsupported major.minor version 49.0”。解决方法是要么使用JDK 1.4重新编译,要么升级WebLogic到...

    MyEclipse 5.0 + WebLogic 9.2 配置解.doc

    如果使用JDK 1.5编译的程序部署到WebLogic 8,会遇到“Unsupported major.minor version 49.0”的错误。为了解决这个问题,我们需要使用支持JDK 1.5的WebLogic 9.2版本。 #### 四、配置WebLogic 9.2 ##### 安装...

Global site tag (gtag.js) - Google Analytics