2013-02-01 120 views
1

我有一個innner類遇到以下問題。這裏是代碼:實例化內部類時發生java.lang.ClassNotFoundException

public class PGZUserManagerBean { 

      // joomla login as separate thread 
      private class JoomlaLogin extends Thread { 

       private AuthJoomla authJoomla; 

       public JoomlaLogin(AuthJoomla authJoomla){ 
        this.authJoomla = authJoomla; 
       } 

       @Override 
       public void run(){ 
        this.authJoomla.authJoomla(); 
       } 
      } 

     public void validateuser(){ 

      AuthJoomla authJoomla = new AuthJoomla(); 

      JoomlaLogin joomlaLogin = new JoomlaLogin(authJoomla); 
      joomlaLogin.start(); 

     } 

    } 

我在運行時得到java.lang.ClassNotFoundException: PGZUserManagerBean$JoomlaLogin。我正在使用Java 1.6。

感謝您提前給予幫助。 al

+0

只有在嘗試使用Class.forName或類似技術在編譯時加載未知的類時才引發ClassNotFoundException,並且該類不存在。 –

+0

不確定,但可能是你的內部類是私人的,並且使用它的方法是公開的。應該生成一個編譯錯誤,但值得一試。 –

回答

5

我強烈懷疑您已將類文件從一個地方複製到另一個地方(或將它們放在jar文件中),但您未能複製/包含PGZUserManagerBean$JoomlaLogin.class

檢查您運行代碼的位置,然後查找JVM無法找到的類文件。它肯定會在你的彙編輸出中。

+0

謝謝!你說得對,班級檔案沒有被複制,但我不是那個抄襲它的人。這是Eclipse,因爲我通過Eclipse將它部署在Tomcat上。所以我的問題是現在,它沒有正確部署。 –

相關問題