java.lang.NoClassDefFoundError:com / google / common / base / Joiner

时间:2017-12-13 01:52:15

标签: java maven dependencies

运行我的包jar时我遇到了这个错误:

java.lang.NoClassDefFoundError: com/google/common/base/Joiner

我只是打电话:java -jar xxx.jar

我已经在我的pom.xml中添加了依赖项:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>18.0</version>
  <scope>compile</scope>
</dependency>

我正在使用IntelliJ编辑器。我对使用Joiner类的函数进行了单元测试。它在IntelliJ中成功运行。

我将光标放在Joiner上并使用“command + B”来搜索Joiner类的声明。它打开Decompiled源代码页,在标题上显示路径为:guava-18.0.jar / com / goog / common / base / Joiner 所以一切看起来都是正确的。

任何人都可以帮我弄清楚为什么会出现这个错误?

1 个答案:

答案 0 :(得分:0)

你可以将番石榴涂在你的罐子里,但它会产生一个更大的罐子文件。但是这样它将被100%包含在你的程序中。在官方maven文档中了解有关将maven依赖项着色到jar文件中的更多信息:http://maven.apache.org/plugins/maven-shade-plugin/