2012-05-25 68 views
4

我知道這個問題可能看起來很愚蠢,因爲我不能給它很多的信息,但我認爲問題必須是某種bug ...java.lang.ClassFormatError:方法中不存在代碼屬性本文或摘要在類文件「類的名稱」

我已經寫了一個NetBeans 7.1的Java程序,現在當試圖運行時,我得到了這個錯誤。 10分鐘前它是完美的運行,我沒有改變任何錯誤指向

這可能是某種NetBeans錯誤?也許這是一個衆所周知的問題?

回答

0

的JDK說,對ClassFormatError:

Thrown when the Java Virtual Machine attempts to read a class file and determines that the file is malformed or otherwise cannot be interpreted as a class file.

也許一個類文件已損壞。我將要做標準的IT支持聲明。 您是否嘗試過重新啓動NetBeans?

希望幫助

+0

重新啓動的NetBeans沒有幫助=( 我怎樣才能重新創造出被破壞的類文件? – Maik

+0

我已經找到了類文件的備份,取而代之的是,現在一切工作正常=) – Maik

0

得到正確的同樣的事情,使用Netbeans 7.1。 在一個可以正常工作幾個月的項目上工作。 現在我改變了一個獲得持久化的javax.persistence,現在拋出了這個異常。恢復了我的一些更改,清理並編譯項目,重新啓動整個系統:仍然是例外。 有趣的是:生成的.war在另一臺機器上的Tomcat中完美工作。


UPDATE

今天,我再次得到了同樣的問題,我不記得如何解決這個問題,但我又發現這個職位。 ;)

半小時後,我發現解決方案:只需更改屬性serialVersionUID的值,重新部署應用程序,然後您可以將該值更改爲其原始值,然後重新部署 - >工作。 似乎Tomcat正在把這個類放在很深的地方 - 刪除工作目錄並沒有導致成功。

2

我也得到了這個例外。我的解決辦法是:

  • 編輯和保存提及類(java文件)
  • 乾淨&建設項目
  • 部署到Tomcat服務器
+0

那做到了!其他答案中肯定會出現一些腐敗現象。我很高興我沒有必要進行大雁追逐。 – mikato

5

它也有此異常NB 7.2

  • 'clean an build'and restarting NB does not work
  • 更新NB與最新的更新和執行'乾淨和構建'也沒有工作。

所以我改名的緩存目錄:

c:\Users\userabcd\AppData\Local\NetBeans\Cache\7.2\index\ 

開始NB,等待它完成「後臺掃描」和按下「調試項目」,瞧。緩存每隔一段時間就會被損壞: -/

+0

緩存可以位於其他地方;看到[這個問題](http://stackoverflow.com/questions/8689780/how-to-clear-the-cache-in-netbeans) – RustyTheBoyRobot

2

我剛剛在Netbeans 7.4 Beta中遇到了這種情況。

事情我想:

  • 重新啓動Netbeans的。
  • 清潔和構建。
  • 關閉netbeans,重命名緩存目錄,啓動netbeans並等待掃描完成。

什麼工作對我來說:

  • 製作的源文件寫入並保存一個毫無意義的變化(插入空格)。

我不知道爲什麼其他步驟沒有解決這個錯誤。如果我在重命名緩存目錄之後完成了清理和構建,也許它會起作用?

這是一個非常令人沮喪的情況 - 希望這有助於某人(也許是未來的我?)。

2

解決方案

  1. 項目屬性
  2. 構建>>編譯
  3. 取消選中:編譯上保存
  4. 清理並生成

  • 如果在編譯時保留未勾選,則不會再有此項目的問題。
  • 如果你喜歡的在保存時編譯功能的好處,你可以重新檢查後,請您選擇清潔而建,並繼續在您的項目的正常工作。
  • Compile on Save是爲了節省時間,通過在您將源代碼保存更改時不斷地將.java文件重新編譯爲背景中的.class文件。通過這種方式,當您構建或運行項目時,大部分編譯工作已經完成,即使對於大型項目,也可以快速運行和測試代碼。
  • NetBeans使用一些奇特的緩存和版本控制來避免每次保存文件時都需要重新編譯整個項目。這就是爲什麼這裏列出的其他解決方案通常會起作用;當它偶爾失敗時,它們就是打破這種緩存和版本控制系統的方法,就像上面那樣。
相關問題