【问题标题】:Gradle IntelliJ IdeaGradle IntelliJ 理念
【发布时间】:2017-04-16 06:21:52
【问题描述】:

当我在我的 libs 文件夹中添加 slf4j-api-1.6.4.jar 和 slf4j-nop-1.6.4.jar 时,它可以正常工作,但是如果我用 gradle 依赖项替换它们,那么在执行 jar 时它会给我以下错误.

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

这些是我的项目对上述库的 gradle 依赖项。

compile group: 'org.slf4j', name: 'slf4j-api', version: '1.6.4'
compile group: 'org.slf4j', name: 'slf4j-nop', version: '1.6.4'

【问题讨论】:

  • @user629735 但是为什么当我从 gradle 而不是 lib 类路径编译时它不起作用
  • 当您说“我的 libs 文件夹”时,您谈论的是哪个文件夹以及如何执行 JAR?
  • 嗯,需要的jar文件必须下载。为此,请确保您运行 Grandle Build 。因此,在您的类路径中,您必须看到一个名为 Artifacts and Depencities 或类似名称的文件夹,并且在其中需要有 jar 文件。还要对你的项目进行一次全新的清理。

标签: java intellij-idea gradle jar executable-jar


【解决方案1】:

确保您已运行 Gradle Build,它可能没有拉取您的依赖项。

【讨论】:

  • 我已经仔细检查了那个东西。
【解决方案2】:

确保在 jar 文件中包含这些依赖项(如 this)。

【讨论】: