Search code examples
noclassdeffounderror

Why am I getting this NoClassDefFoundError from my code?


I have been trying to use a Jar file as a library in my code, and it compiles fine. However, at runtime, I keep getting the NoClassDefFoundError message. Why is this happening? I have included the Jar file in the compile path and the runtime path too.

Here is the error message:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.apache.pdfbox.cos.COSDocument.(COSDocument.java:51) at org.apache.pdfbox.pdmodel.PDDocument.(PDDocument.java:136) at processing.PDFToJPG.main(PDFToJPG.java:58)

Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 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) ... 3 more

Here is my code:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;

public static void main(String[] args) {
    try {
        PDDocument doc = new PDDocument();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

I am using NetBeans IDE as well as Windows 10

This is my setting for compile classpath:

[This is my setting for compile classpath[1]

This is my setting for runtime classpath:

[This is my setting for runtime classpath[2]

EDIT: Thank you for your help, it really worked. All i needed to do was to download the dependencies Jar file, not editing the classpath like what i have been trying to do


Solution

  • I think you need another jars besides the one you have already included. Try to add common-logging 1.4. Apparently, there is a dependency between pdfbox1.8.jar and this jar as stated on their site.

    EDIT: There are more dependencies fontbox and jempbox to take in account as well.

    EDIT2: I made a zip with all dependencies needed you can download it here.