Venkat
Venkat

Reputation: 311

Exception in thread "main" java.lang.NoClassDefFoundError: org/jsoup/nodes/Element

My Java application contains three class files with dependencies

Master.java
Worker.java
EmailSender.java

I have packaged my application using maven.

POM.xml

<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>com.myapp.urlhit</groupId>
  <artifactId>url_hit</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>url_hit</name>
  <url>http://maven.apache.org</url>


<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
        <mainClass>com.myapp.urlhit.url_hit.Master</mainClass>
            </manifest>
          </archive>
        </configuration>

      </plugin>
    </plugins>
  </build>


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mailapi</artifactId>
    <version>1.4.3</version>
</dependency>
<dependency>
  <groupId>org.jsoup</groupId>
  <artifactId>jsoup</artifactId>
  <version>1.8.2</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>
  </dependencies>
</project>

and below are my manifest file contents

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: venkat
Build-Jdk: 1.8.0_45
Main-Class: com.myapp.urlhit.url_hit.Master
Class-Path: mailapi-1.4.3.jar jsoup-1.8.2.jar activation-1.1.1.jar

when I am trying to execute the packaged JAR file using java -jar ###.jar I am getting the error like

Exception in thread "main" java.lang.NoClassDefFoundError: org/jsoup/nodes/Element
    at com.myapp.urlhit.url_hit.Master.main(Master.java:14)
Caused by: java.lang.ClassNotFoundException: org.jsoup.nodes.Element
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more

above error is referring to line

Worker works = new Worker();

the packaged jar contains all the required class files. But still I am facing this error. I have nothing in my echo $CLASSPATH.

Upvotes: 1

Views: 1264

Answers (1)

Vy Do
Vy Do

Reputation: 52516

Because jsoup 1.8.2 download to your local repository corrupted.

- Check network connection
- Try again or use other version
- Try other maven repository URL.
- Download dependency manually then add it to local Maven repository.

Upvotes: 1

Related Questions