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
Post a Comment