2015-08-14 44 views
1

当我从运行这个玩具的例子中,我得到这个错误:杰克逊的NoClassDefFoundError例外

http://howtodoinjava.com/2014/06/16/jackson-examples-convert-java-object-to-from-json/

我gradle这个文件有:

dependencies { 
    classpath('org.codehaus.jackson:jackson-mapper-asl:1.9.13') 
} 

错误:

java -jar build/libs/pojo-test-0.1.0.jar

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonGenerationException

        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
        at java.lang.Class.getMethod0(Class.java:2856)
        at java.lang.Class.getMethod(Class.java:1668)


根据建议将我的gradle更改为incl UDE核心ASL仍然给出了同样的错误(查看更改):

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath('org.codehaus.jackson:jackson-mapper-asl:1.9.13') 
     classpath('org.codehaus.jackson:jackson-core-asl:1.9.13') 
    } 
} 
apply plugin: 'java' 

jar { 
    manifest { 
     attributes 'Main-Class': 'JavaToJSONExample' 
    } 
} 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile('org.codehaus.jackson:jackson-mapper-asl:1.9.13') 
    compile('org.codehaus.jackson:jackson-core-asl:1.9.13') 
} 
+0

这映射器版本未必是直接的问题,但你使用杰克逊的过时(第1版)版本;最新的是2.6.1 – chrylis

回答

1

如果你想要去的老杰克逊实施,你也需要进口杰克逊核心-ASL:

dependencies { 
     classpath('org.codehaus.jackson:jackson-mapper-asl:1.9.13') 
     classpath('org.codehaus.jackson:jackson-core-asl:1.9.13') 
    } 
+0

看到我编辑的问题,我尝试过,但没有改变错误。 – user3079275

+0

jackson-core-asl包含您正在查找的文件(请参阅http://grepcode.com/file/repo1.maven.org/maven2/org.codehaus.jackson/jackson-core-asl/1.9.13/组织/ Codehaus的/杰克逊/ JsonGenerationException.java?AV = F)。请尝试重建项目以使您的gradle更改生效。 –

0

在分级中使用此依赖关系

'com.fasterxml.jackson.core:jackson-core:2.6.1' 

以及映射器依赖项。 此外,请升级与

'com.fasterxml.jackson.core:jackson-databind:2.6.1' 
+0

没有运气,编译得很好,但我总是得到和OP一样的错误。 – user3079275