Memcached dependency jar non funziona con il progetto maven e lancia java.lang.ClassNotFound: netto.spia.memcached.Eccezione MemcachedClient
Il mio progetto è in ambiente linux. Voglio aggiungere memcached jar dependency jar nel mio progetto. Quindi ho aggiunto le seguenti righe in pom.xml come descritto qui .
<repositories>
<repository>
<id>spy</id>
<name>Spy Repository</name>
<layout>default</layout>
<url>http://files.couchbase.com/maven2/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>spy</groupId>
<artifactId>spymemcached</artifactId>
<version>2.8.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
Il programma è stato compilato correttamente. Ma ogni volta che sto eseguendo il jar del progetto, genera la seguente eccezione:
Exception in thread "main" java.lang.NoClassDefFoundError: net/spy/memcached/MemcachedClient
at MemClient.<clinit>(MemClient.java:12)
at MemClientUser.main(MemClientUser.java:18)
Caused by: java.lang.ClassNotFoundException: net.spy.memcached.MemcachedClient
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:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 2 more
Ho provato alcune soluzioni come indicato nel seguente link :
Java ClassNotFoundException con maven dependency , ma non ha corretto l'eccezione.
Come può questa eccezione essere risolto?
1 answers
Non è sufficiente eseguire il jar, poiché Maven non "incorpora" le dipendenze di un modulo nel jar che sta costruendo. Esegui il jar con
java -jar yourJar.jar -cp pathToTheSpymemcached.jar
Dove sostituisci yourJar.jar
e pathToTheSpymemcached.jar
in modo appropriato o puoi dare un'occhiata a questo: Come posso creare un JAR eseguibile con dipendenze usando Maven?