2013-02-01 71 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上。所以我的问题是现在,它没有正确部署。 –

相关问题