Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.ClassNotFoundException:org.glassfish.jersey.client.JerseyClientBuilder_Java_Eclipse_Maven_Jersey - Fatal编程技术网

java.lang.ClassNotFoundException:org.glassfish.jersey.client.JerseyClientBuilder

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&

嗨,我正在使用以下maven依赖项。当我在Eclipse中运行应用程序时,它运行良好。但当我将应用程序部署为jar文件时,它抛出了以下错误

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>