java.lang.NoClassDefFoundError:com/fasterxml/jackson/core/JsonFactory

VVB*_*VVB 30 java jar noclassdeffounderror live-streaming youtube-data-api

我正在研究YouTube broadcast示例示例.我创建了一个样本Java Project并添加了所需的罐子.但是,当我尝试运行该项目时,它会抛出异常.

例外:

Throwable: com/fasterxml/jackson/core/JsonFactory
java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory
    at com.google.api.client.json.jackson2.JacksonFactory.<init>(JacksonFactory.java:44)
    at com.google.api.services.samples.youtube.cmdline.live.Auth.<clinit>(Auth.java:35)
    at com.google.api.services.samples.youtube.cmdline.live.CreateBroadcast.main(CreateBroadcast.java:55)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 3 more
Run Code Online (Sandbox Code Playgroud)

我从这个GitHub存储库下载了该项目.

shr*_*810 57

将以下依赖项添加到您的 pom.xml

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.5.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)


sha*_*eef 12

就我而言,问题是当我添加 com.fasterxml.jackson.dataformat 时,我输入了版本2.11.0

虽然所有其他 Jackson 依赖项都是 2.8.0,其中之一是2.11.0,并将所有更改为2.8.0修复了它。

仅供参考,2.11 是最新的,但由于我的遗留代码,我也将其保留为 2.8。

修复之前 [错误]:com.fasterxml.jackson.dataformat版本是2.11.0

   <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>2.11.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.8.0</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

修复后 [ WORKED ]com.fasterxml.jackson.dataformat版本为2.8.0

 <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>2.8.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.8.0</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)


asi*_*b87 11

由于旧版本,我收到此错误。然后我改成这个版本 n 错误消失了 Using maven my pom.xml

<properties>  
    ...
    <jackson.version>2.5.2</jackson.version>
</properties>

<dependencies>
...
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

我的旧版本是“2.2.3”


小智 10

如果您使用的是 springboot 则默认添加 jackson

因此,您手动添加的 jackson 版本可能与 spring boot 添加的一个冲突

尝试从你的 pom 中删除 jackson 依赖项,

如果需要覆盖spring boots add的版本,那么需要先排除,再添加自己的


小智 7

我也有同样的错误。我添加了对 pom.xml 的依赖(我正在使用 Maven)

<dependency> 
        <groupId>com.fasterxml.jackson.core</groupId> 
        <artifactId>jackson-core</artifactId> 
        <version>2.12.1</version> 
 </dependency> 
Run Code Online (Sandbox Code Playgroud)

我开始尝试使用版本 2.9.0,然后发现了一个不同的错误 (com/fasterxml/jackson/core/exc/InputCoercionException),然后我尝试不同的版本,直到使用版本 2.12.1 解决了所有错误


小智 5

请求的 jar 可能不是 jackson- annotations -xyzjar,而是 jackson- core -xyzjar,可以在这里找到: http ://www.java2s.com/Code/Jar/j/Downloadjacksoncore220rc1jar.htm


ahm*_*ira 5

我通过简单地删除版本标签解决了这个问题,如下所示:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)