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?

Author: Community, 2013-04-16

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.jarin modo appropriato o puoi dare un'occhiata a questo: Come posso creare un JAR eseguibile con dipendenze usando Maven?

 1
Author: skirsch, 2017-05-23 12:04:57