maven - How to run -jar file (java.lang.NoClassDefFoundError) -


i have maven project (netbeans ide) uses 3 libraries: gson, okhttp, okio. trying execute .jar created after building project, through terminal , command $java -jar app.jar, keep getting error below:

exception in thread "main" java.lang.noclassdeffounderror: okhttp3/callback     @ it.bitrack.main.main.main(main.java:43) caused by: java.lang.classnotfoundexception: okhttp3.callback     @ java.net.urlclassloader.findclass(urlclassloader.java:381)     @ java.lang.classloader.loadclass(classloader.java:424)     @ sun.misc.launcher$appclassloader.loadclass(launcher.java:331)     @ java.lang.classloader.loadclass(classloader.java:357)     ... 1 more 

i added .jar files of these 3 libraries in same folder app.jar , in subfolder called libs, no positive effect.

would able guess why , try make work? app runs when executed within netbeans...

this pom file:

<?xml version="1.0" encoding="utf-8"?> <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>it.bitrack</groupid>     <artifactid>bitrackassetsimulator</artifactid>     <version>1.0-snapshot</version>     <packaging>jar</packaging>     <properties>         <project.build.sourceencoding>utf-8</project.build.sourceencoding>         <maven.compiler.source>1.8</maven.compiler.source>         <maven.compiler.target>1.8</maven.compiler.target>     </properties>      <dependencies>          <dependency>             <groupid>com.google.code.gson</groupid>             <artifactid>gson</artifactid>             <version>2.8.0</version>         </dependency>          <dependency>             <groupid>com.squareup.okhttp3</groupid>             <artifactid>okhttp</artifactid>             <version>3.6.0</version>         </dependency>      </dependencies>      <build>         <plugins>             <plugin>                 <!-- build executable jar -->                 <groupid>org.apache.maven.plugins</groupid>                 <artifactid>maven-jar-plugin</artifactid>                 <version>3.0.2</version>                 <configuration>                     <archive>                         <manifest>                             <addclasspath>true</addclasspath>                             <classpathprefix>lib/</classpathprefix>                             <mainclass>it.bitrack.main.main</mainclass>                         </manifest>                     </archive>                 </configuration>             </plugin>         </plugins>     </build>  </project> 

thank you.

you have embed dependencies in jar.

use maven dependency plugin : https://maven.apache.org/plugins/maven-assembly-plugin/usage.html

example :

<plugin>   <artifactid>maven-assembly-plugin</artifactid>   <configuration>     <archive>       <manifest>         <mainclass>it.bitrack.main.main</mainclass>       </manifest>     </archive>     <descriptorrefs>       <descriptorref>jar-with-dependencies</descriptorref>     </descriptorrefs>   </configuration>   <executions>     <execution>       <id>make-assembly</id> <!-- used inheritance merges -->       <phase>package</phase> <!-- bind packaging phase -->       <goals>         <goal>single</goal>       </goals>     </execution>   </executions> </plugin> 

then: mvn package


Comments