静态内部类实例化 - ClassNotFoundException

时间:2014-04-22 22:34:25

标签: java static classnotfoundexception inner-classes

我在jar中有以下类

public class Loc {

 public static class Dat {
     private int x, y;

     public Dat(int x, int y) {
        this.x = x;
        this.y = y;
     }
  }
}

在另一个项目中,我像这样实例化上面的类:(我正在导入上面的类)

Loc.Dat data = new Loc.Dat(19,10);

但是我在日志中看到以下错误。 (不显示在tomcat服务器控制台中)

SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/myservice] 
         threw  exception [Handler processing failed; nested exception is 
           java.lang.NoClassDefFoundError: org/company/manage/serv/Loc$Dat] 
           with root cause
java.lang.ClassNotFoundException: org.company.manage.serv.Loc$Dat

我进入了WebApps文件夹并打开了jar文件。我看到了Loc和Loc $ Dat类文件。

我错过了什么?

编辑: 我忘了说这编译好了。没有显示错误。它仅在我运行时显示。

1 个答案:

答案 0 :(得分:2)

  

在另一个项目中,我正在实例化上面的类

这听起来好像你可能正在尝试从另一个包中创建一个实例。

内部类的可见性不能超过外部类的可见性。 Loc不公开,因此您无法在另一个包中导入Dat