我在 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 类文件。
我错过了什么?
编辑: 我忘了说这个编译得很好。没有显示错误。它仅在我运行时显示。
最佳答案
In another project, I am instantiating the above class
这听起来像是您可能正在尝试从另一个包中创建实例。
内部类的可见性不能超过外部类的可见性。 Loc
不是公开的,因此您无法在另一个包中导入 Dat
。
关于java - 静态内部类实例化 - ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231503/