gpt4 book ai didi

java - 接口(interface)上的 NoClassDefFoundError,而不是类

转载 作者:搜寻专家 更新时间:2023-11-01 01:11:23 25 4
gpt4 key购买 nike

我对 NoClassDefFoundError 有疑问。我正在使用接口(interface),应该没有可用的类定义:

package code;
public interface Constants {...}

实现这个接口(interface)的类编译没有任何错误,并且已经构建了一个 JAR 文件,但是在运行时它给我一个错误。

import ...;
import code.*;
public class MultiDoc extends LanguageAnalyser implements Constants{}

Constants 仅包含常量列表。

我读过一些帖子指出 CLASSPATH 是导致此问题的原因,但我的 CLASSPATH 中有 code 包。如果我没有它,它会产生编译错误。所以,问题应该是别的。

运行时错误是:

java.lang.NoClassDefFoundError: code/Constants

解决方案是什么?

最佳答案

检查这个类的静态初始化。看这里:what is the difference between NoClassDefFoundError and ClassNotFoundException .
java.lang.NoClassDefFoundError: code/Constants 并不意味着 Constants 类不在 CLASSPATH 中。事实上恰恰相反。这意味着该类已被 ClassLoader 找到,但是在尝试加载该类时,它在读取类定义时遇到了错误。当所讨论的类具有静态 block 或使用类加载器未找到的类的成员时,通常会发生这种情况。

关于java - 接口(interface)上的 NoClassDefFoundError,而不是类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6663810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com