Meine erste Verwendung von Maven und ich bin mit Abhängigkeiten fest.NoClassDefFoundError auf Maven Abhängigkeit
Ich habe ein Maven-Projekt mit Eclipse erstellt und Abhängigkeiten hinzugefügt, und es funktionierte ohne Probleme.
Aber wenn ich versuche es über die Befehlszeile auszuführen:
$ mvn package # successfully completes
$ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App # NoClassDefFoundError for dependencies
Es lädt Abhängigkeiten, baut erfolgreich, aber wenn ich versuche, es zu laufen, bekomme ich NoClassDefFoundError:
Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonParseException
at tr.edu.hacettepe.cs.b21127113.bil138_4.db.DatabaseManager.<init>(DatabaseManager.java:16)
at tr.edu.hacettepe.cs.b21127113.bil138_4.db.DatabaseManager.<init>(DatabaseManager.java:22)
at tr.edu.hacettepe.cs.b21127113.bil138_4.App.main(App.java:10)
Caused by: java.lang.ClassNotFoundException: org.codehaus.jackson.JsonParseException
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 3 more
Mein pom .xml ist wie folgt:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>tr.edu.hacettepe.cs.b21127113</groupId>
<artifactId>bil138_4</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>bil138_4</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.6</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.6</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
Kann mir jemand helfen?
Erhalte diesen Fehler: http://pastebin.com/g2txkMY6. Ich kann es auf Eclipse mit m2eclipse plugin ausführen, ich habe die Anwendung darauf entwickelt. Ich kann nicht einfach herausfinden, wie man es über die Befehlszeile ausführt. Und wie kann ich meinen Maven Klassenpfad importieren? Edit: Versucht mit -classpath /home/utdemir/.m2/repository/ Parameter zu Java-Befehl hinzufügen, immer noch kein Glück. – utdemir
Meine Antwort wurde aktualisiert. –
Vielen Dank. Wenn Sie den Klassenpfad wie angegeben einstellen, wird das Problem gelöst und die Frage als gelöst markiert.Aber ich habe noch ein paar Fragen mehr: 1- Warum muss ich Jackson nicht zum Classpath für exec plugin hinzufügen? 2- Exec-Plugin muss mein Projekt kompiliert werden, so sollte ich mvn kompilieren oder Paket ausgeführt haben, oder? 3- Dieser Code ist meine Aufgabe, ist das Hinzufügen von Bibliotheken in ihre Klassenpfade ihre Verantwortung, oder muss ich etwas dagegen tun? – utdemir