2014-02-19 106 views
0

我是使用Java進行編程的新手,我試圖編寫一個程序來讀取虛擬銀行的客戶數據,使用多態性計算基於帳戶類型的興趣(業務,檢查,儲蓄)。它編譯正確,當我運行它時,它似乎對商業賬戶工作正常,但是當它到達檢查和儲蓄賬戶時,我得到一個NoClassDefFoundError。Java NoClassDefFoundError診斷

好了,這裏的相關代碼:

這裏是調用類的構造函數的類不工作(通過一個循環來確定j)條:

client[j]=new savings_accounts(name, account_number, phone, ssn, balance, type); 

指令在主計算的期末餘額:

client[j].close_balance=client[j].closing(); 

這裏是不工作類:

class savings_accounts extends account 
{ 
    public savings_accounts(String name, int account_number, String phone_number, 
       String ssn, int open_balance, String acct_type){ 
    super(name, account_number, phone_number, ssn, open_balance, acct_type); 
    open=open_balance; 
    } 
    int open; 
    public float close_balance; 
    public float closing(){ 
    float close; 
    if(open<5000) close=(float)open*1.04; 
    else close=(float)open*1.05; 
    return close; 
    }} 

感謝您的幫助!

+4

點擊'edit',選擇您的代碼,然後點擊'{}'按鈕。只發布相關的代碼和堆棧跟蹤。 –

+0

ya ... ctrl + k .. – TheLostMind

+0

[This might help you out](http://stackoverflow.com/editing-help) – Max

回答

0

有兩種常見的原因NoClassDefFoundError的:

  1. 編譯時使用的類(或您正在使用的其中一個軟件包)的版本不是您正在運行的版本。這可能是由於只需要重新編譯所有東西,或者由於在類路徑中存在第三方JAR文件的錯誤版本。
  2. 您有一個位於x/y/z/MyClass.class中的類,應該位於x.y.z包中,但在編譯時忽略了(或不正確編碼)package語句。

還有一堆「不常見」的原因 - NoClassDefFoundError是類加載中出現錯誤的「垃圾」異常。

+0

我確實需要重新編譯;由於我沒有意識到會影響程序的錯誤(由於在浮點數乘以小數而導致計算錯誤的可能性;我必須將其更改爲雙倍),所以該類沒有正確編譯。 – user3326317

0
NoClassDefFoundError 

這是不一樣的ClassNotFoundException.這通常意味着一個文件在預期的地方發現的,但它不包含預期的類,即錯誤的名稱或錯包。一個乾淨的構建通常會解決它,否則請檢查你的類名的文件名完全匹配,而且包的名稱與目錄層次結構中的源文件恰好一致