现在的位置: 首页 > 综合 > 正文

java/lang/ClassFormatError: Bad version informationd在Eclipse和Jbuilder的修改方法

2014年01月27日 ⁄ 综合 ⁄ 共 1685字 ⁄ 字号 评论关闭

这个错误常出现在J2ME的开发中。

Eclipse修改方法:

Set the "Java Compliance Level" to 1.4. For this, in Eclipse Go to Project -> Properties -> Java compiler, enable "project specific settings" and then set "Java Compliance Level" to 1.4. 

实际上可能针到不同的环境,尤其是你拿别人的程序来调试的时候,常会这样,你只需要修改JDK的配置就可以了,也就是你编译用的JDK和你真正部署应用的JDK。

Jbuilder修改方法:

 今天学习做j2me的开发,照着书上的例子写HelloWorld,然后在Jbuilder2006中运行,弄了几次就是没有看到效果,后来看运行输出才发现有一个出错!,错误信息如下:
ALERT: java/lang/ClassFormatError: Bad version information.

靠,还没开始就给来一个下马威,在google中查了一下,原来是Jbuilder2006的错误,只需要修改project 中的参数就可以了,具体如下:

project -> project properties->build->java 项
把默认的 target VM : java 2 sdk , v5.0 and later
改为 All java sdks

接着很重要,你要rebuild你的工程才行(这一步非常重要),

就ok 啦!

另记一篇文章:

       才装Jbuilder2006不久,今天打算测试一下用sun的移动开发包WTK2.2,于是新建了一个project,选用wtk2.2的类库,然后建立MIDlet项目。Jbuilder自动生成代码后,我参照一些资料将其改写成了一个helloworld程序,然后运行测试,结果发现手机模拟器弹出后,出现程序,点击启动后就立刻自动关闭了,同时console里面出现一大堆的堆栈数据。真实莫明其妙,重试多次都如此,后来仔细检查console的输出内容,一行红字引起了我的注意:

ALERT java/lang/ClassFormatError: Bad version information

        这是一句让人摸不着头脑的提示(java开发中经常遇到抛出的一大堆错误,看起来很郁闷...),“损坏的版本信息”?奇怪了。于是我重新建立了工程,这次不对自动生成的代码作任何修改,再试,结果一样。难道我的jbuilder文件出了问题?干脆重装一下试试。令人郁闷的是,重装后,问题依旧如故......

        后来无意中在jbuilder的readme.html文档中发现了问题:原来这是一个known problem:原文如下:

[227771] If you use WTK 2.2 and earlier, and you get the message "ALERT: java/lang/ClassFormatError: Bad version information" when you launch the MIDlet, you may need to set the target VM in JBuilder to any targets other than Java 2 SDK, v 5.0 (generics enabled). This option is on the Build|Java page of the Project Properties dialog box.
        大意是说,如果你使用wtk2.2或更高版本,并且当你运行MIDlet时遇到了"ALERT: java/lang/ClassFormatError: Bad version information"错误信息,你可能需要将jbuilder中的目标虚拟机(VM)设置成除了Java 2 SDK v5.0(generics enabled)之外的其他选项。该选项在工程的属性->Build->Java项里。

        依文而行,在rebuild了project后,重新运行程序,终于正常了,手机模拟器的屏幕上出现了hello world文本!成功!

抱歉!评论已关闭.