bloodquantum
bloodquantum

Reputation: 28

Unable to run java with an external library

I saw this post but I wasn't clear on what the resolution was.

I'm trying to run a java program from command line utilizing an external library. Here is the total output of my session:

grifter@host:~/java$ cat ExtractTest.java 

import java.io.IOException;
import org.apache.pdfbox.util.PDFTextStripper;
import org.apache.pdfbox.pdmodel.PDDocument;
import java.io.File;

public class ExtractTest {

public static void main(String[] args) throws IOException {

    System.out.println("About to open PDF");
    File fh = new File("/home/grifter/test.pdf");
    PDDocument d = PDDocument.load(fh);
    System.out.println("Here");
    PDFTextStripper ts = new PDFTextStripper();
    System.out.println(ts.getText(d));

    }
}

grifter@host:~/java$ javac -cp .:/home/grifter/pdfbox-1.8.5/pdfbox/target/pdfbox-1.8.5.jar ExtractTest.java 
grifter@host:~/java$ java -classpath .:/home/grifter/pdfbox-1.8.5/pdfbox/target/pdfbox-1.8.5.jar ExtractTest
About to open PDF
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.pdfbox.pdfparser.BaseParser.<clinit>(BaseParser.java:68)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1219)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1187)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1158)
    at ExtractTest.main(ExtractTest.java:12)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    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:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 5 more

Could someone please point me in the right direction?

Any help is appreciated.

Upvotes: 1

Views: 2713

Answers (2)

Karthik
Karthik

Reputation: 932

pdf box uses dependencies, which also needs to be added to your class path. You can read about the dependecies here

Upvotes: 3

Jens
Jens

Reputation: 69440

The jar commons-logging and the dependencies is missing in your classpath.

You can download it here

Upvotes: 0

Related Questions