java.lang.ClassNotFoundException:org.glassfish.jersey.client.JerseyClientBuilder
嗨,我正在使用以下maven依赖项。当我在Eclipse中运行应用程序时,它运行良好。但当我将应用程序部署为jar文件时,它抛出了以下错误java.lang.ClassNotFoundException:org.glassfish.jersey.client.JerseyClientBuilder,java,eclipse,maven,jersey,Java,Eclipse,Maven,Jersey,嗨,我正在使用以下maven依赖项。当我在Eclipse中运行应用程序时,它运行良好。但当我将应用程序部署为jar文件时,它抛出了以下错误 Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder at java.net.URLClassLoader.findClass(Unknown Source) 下面是我的maven依赖文件 <dependencies&
Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder
at java.net.URLClassLoader.findClass(Unknown Source)
下面是我的maven依赖文件
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${jersey.client.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>${jersey.client.version}</version>
</dependency>
<!-- http://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
<properties>
<jersey.client.version>2.21</jersey.client.version>
</properties>
<dependencies>
org.glassfish.jersey.core
如果只分发一个jar(而不是胖jar/uber jar),则需要提供到它的类路径,这就是运行它所需的所有库jar
在你的情况下,应该是这样的:
java -jar my.jar -cp $HOME/.m2/repository/org/glassfish/jersey/core/jersey-client/2.21/jersey-client-2.21.jar
在:
之后,您需要添加所有其他依赖项
另一种选择是使用汇编插件构建uber jar(包含所有其他jar、库和代码的jar)::
maven汇编插件
2.6
带有依赖项的jar
然后使用:mvn clean package assembly:single
构建jar,现在您在target
中有两个jar,较大的一个是可以分发的uber jar。可能您在pom.xml
中缺少下面的Maven依赖项
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.2.Final</version>
</dependency>
org.jboss.resteasy
resteasy客户端
3.0.2.3最终版本
您使用哪个版本的JAVA?eclipse workspace和独立java是否都使用相同的JDK?我在工作空间和运行jar文件中都使用Java8,在这里假设在打包时,jar不会被遗漏(您可以通过打开并验证jar文件的内容来快速验证情况是否如此)。另外,如果您将jar作为maven生命周期运行,您是否可以编辑文章以包含mvn dependency:tree?如果您想使用类路径方法,枚举所有依赖项的一种方法是通过mvn dependency:build classpath
。详情如下:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.2.Final</version>
</dependency>