java—为什么在pom.xml中将包作为依赖项列出时会得到classnotfoundexception

n1bvdmb6  于 2021-07-09  发布在  Java
关注(0)|答案(4)|浏览(257)

我刚问了另一个问题,因为我遇到了一些例外。

Caused by: java.lang.ClassNotFoundException: org.elasticsearch.plugins.NetworkPlugin
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_131]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_131]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_131]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_131]
    ... 56 common frames omitted

有人向我指出,这个异常意味着在运行时在类路径中找不到所提到的类。这是在pom.xml文件中有容器包的情况下。

<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>5.5.0</version>
</dependency>

所以现在我的问题是,一个包怎么可以被命名为依赖项,但其中的某个类在运行时丢失了呢?而且, mvn dependency:tree -Dverbose -Dincludes=commons-collections 不返回冲突。
这是一个springboot项目,我正在调试模式下使用intellijidea运行。我还在我的代码中以完全相同的方式使用了其他十几个包,它们都工作得很顺利。但一旦我加入elasticsearch,我就会面临上述例外。

a64a0gku

a64a0gku1#

您是否尝试过清理并生成?因为有时,当您向pom.xml添加依赖项时,您会看到库正在下载,但如果您尝试在不生成它的情况下执行项目,则会出现该错误。

xxb16uws

xxb16uws2#

是否可以尝试从计算机中删除已下载的依赖项。
它位于 ~/.m2/repository/org/elasticsearch 假设您将maven依赖项保留在默认位置并在macosx上运行

rm -rf ~/.m2/repository/org/elasticsearch/*

然后尝试使用重新下载依赖项

mvn dependency:resolve
8e2ybdfx

8e2ybdfx3#

你可以试着使用一个bellow版本的elasticsearch`dependency。您可以从以下依赖项中尝试一个依赖项:-

<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.4.3</version>
</dependency>

或者

<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.0.0-alpha2</version>
</dependency>
xurqigkl

xurqigkl4#

你错过了插件部分。

<!-- https://mvnrepository.com/artifact/org.elasticsearch.plugin/plugins -->
<dependency>
    <groupId>org.elasticsearch.plugin</groupId>
    <artifactId>plugins</artifactId>
    <version>2.4.5</version>
    <type>pom</type>
</dependency>

也许你还需要运输部分:

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>transport</artifactId>
    <version>5.5.0</version>
</dependency>

查看此链接是否有帮助:elasticsearch transportclient networkplugin noclassdeffounderror

相关问题