2015-08-14 95 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