IntelliJ IDEA使用Java-WebSocket JAR运行报NoClassDefFoundError如何解决
问题根因
你遇到的java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory错误,核心是Java-WebSocket 1.5.2版本本身依赖SLF4J日志框架,你当前仅在classpath中添加了Java-WebSocket自身的JAR包,缺少该框架依赖的SLF4J相关组件。
你之前的配置操作是正确的,已经成功将直接依赖的Java-WebSocket包加入了项目依赖,之所以还报错是因为Java会递归加载所有关联类,被依赖的组件如果缺失一样会抛出类找不到的异常。
解决步骤
- 下载1.7.x稳定版的SLF4J核心包,无需选择2.x高版本避免兼容性问题,仅需要
slf4j-apiJAR包即可解决报错,如果不想看到后续的日志实现警告,可以额外下载slf4j-simple实现包。 - 把下载好的SLF4J相关JAR包,按照你之前添加Java-WebSocket JAR的操作路径,同样添加到IntelliJ IDEA的模块依赖配置中。
- 重新运行项目,此时运行命令的
-classpath参数会自动带上新加的SLF4J相关JAR包,类找不到的报错就会消失。
内容的提问来源于stack exchange,提问作者DDC
相关产品推荐
相关产品推荐

