java.lang.ClassNotFoundException / NoClassDefFoundError für com/fasterxml/jackson/databind/ObjectMapper mit Maven

Bekomme ich die folgende Fehlermeldung, wenn Sie versuchen zum ausführen einer java-Programm, das mit jackon ' s ObjectMapper Klasse:

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
  at com.inin.dynamotransfer.DynamoTransfer.importData(DynamoTransfer.java:133)
  at com.inin.dynamotransfer.DynamoTransfer.main(DynamoTransfer.java:67)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper
  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 java.lang.ClassLoader.loadClass(ClassLoader.java:358)
  ... 2 more

Ich habe die Jackson-Anmerkungen, databind (enthält ObjectMapper), und core-JARs in mein Maven-repository unter ~/.m2/repository/com/fasterxml/jackson/core/jackson-[packagename]/2.4.0. hier ist der Abhängigkeiten Abschnitt meines pom.xml:

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

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

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

hier ist mein CLASSPATH:

:/Users/myusername/Library/Java/Extensions:/Library/Java/Extensions:/Users/myusername/.m2/repository

also Maven weiß alles über diese Gläser - wo kommen em, wo em, etc. - aber java selbst kann nicht scheinen zu finden, die Klassen, die ich brauche. was mache ich falsch?? danke!

  • haben Sie einen Blick auf stackoverflow.com/questions/18429468/...
  • Dank Frederic. Ich löste mein problem durch kopieren der Jackson Gläser zu ~/Library/Java/Extensions. Ich bin mir immer noch nicht sicher, warum, konnte ich mein Programm vorher, ohne das getan. Ich denke, Maven nutzt seine JAR-repository, wenn Sie ein Programm ausführen, die über die exec-plugin, aber der java-Befehl nicht. dass auch nicht erklären, warum java nicht finden konnte, Jackson, wenn ich an die Lage der Gläser über den command-line-cp-option.
InformationsquelleAutor ur-vogel | 2014-09-26
Schreibe einen Kommentar