我在我的一个程序中得到了这个NoClassDefFoundError:
10:26:56,893 ERROR [STDERR] Exception in thread "Timer-4"
10:26:56,893 ERROR [STDERR] java.lang.NoClassDefFoundError: Could not initialize class
com.something.plugin.gameserver.common.MetricsRegistrar
10:26:56,893 ERROR [STDERR] at com.something.plugin.gameserver.main.GameServerPlugin.init(GameServerPlugin.java:48)
我知道它是一个类路径问题,但奇怪的是发生错误的GameServerPlugin类和它寻找的MetricsRegistrar类在同一个jar中。那么一个人不能在班级道路上而另一个人不能正确?
我检查了Jar文件,它有相关的类文件,所以也不是问题。
jar的INDEX.LIST还有一个MetricsRegistrar类包的条目。我还应该检查什么?
为了完整性,我正在使用Ant构建并在JBoss中运行。
答案 0 :(得分:2)
这是一个插件问题:
您需要在插件配置文件中添加类和导入。
Java Web应用程序具有web.xml配置文件,该文件在应用程序首次启动时由运行它的容器读取,
另一方面,对于插件,插件配置文件(即ProjectName.plugin.xml)文件由使用此插件的应用引擎加载和读取。
答案 1 :(得分:2)
答案 2 :(得分:0)
通常,这意味着在异常中指定的类的静态初始化期间抛出(并且未捕获)未经检查的异常,或者它所依赖的其他类。
如果这是第一次尝试类加载,那么触发问题的异常应该是NoClassDefFoundError
异常的“原因”链。