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

這個錯誤常出現在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文本!成功!

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/E_wsq/archive/2008/03/26/2219358.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章