我在运行包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类的声明。它将打开反编译的源代码页面,并在标题上显示路径: guava-18.0.jar/com/goog/common/base/Joiner,这样一切看起来都是正确的。
有没有人能帮我弄清楚为什么会出现这个错误?
发布于 2017-12-13 10:58:31
您可以将芭乐着色到您的jar中,但这将导致更大的jar文件。但这样它就会100%地包含在你的程序中。有关将maven依赖项着色到jar文件中的更多信息,请参阅官方maven文档:http://maven.apache.org/plugins/maven-shade-plugin/
https://stackoverflow.com/questions/47784352
复制相似问题