Hi,

----- original Nachricht --------

Betreff: Using PDFBox without Maven
Gesendet: Fr, 28. Mai 2010
Von: Stephen Haggai<[email protected]>

> Hi All,
> 
> Could someone advise if this is the proper way to use PDFBox without Maven?
> There are many users who are not familiar with Maven. I have downloaded
> pdfbox-1.1.0.jar, fontbox-1.1.0.jar, and jempbox-1.1.0.jar from
> http://pdfbox.apache.org/download.html
> 
> I added all three jars to my classpath and compiled the following program
> 
> import java.io.*;
> import org.apache.pdfbox.pdmodel.*;
> import org.apache.pdfbox.util.*;
> 
> public class PDFTest {
> 
>  public static void main(String[] args){
>  PDDocument pd;
>  BufferedWriter wr;
>  try {
>          File input = new File("C:\\invoice.pdf");
>          File output = new File("C:\\Text.txt");
>          pd = PDDocument.load(input);
> 
>          PDFTextStripper stripper = new PDFTextStripper();
>          wr = new BufferedWriter(new OutputStreamWriter(new
> FileOutputStream(output)));
>          stripper.writeText(pd, wr);
>          if (pd != null) {
>              pd.close();
>          }
>  } catch (Exception e){
>          e.printStackTrace();
>         }
>      }
> }
> 
> It compiles fine but I receive the following error messages when I run it.
> 
> Exception in thread "main" java.lang.NoClassDefFoundError:
> org/apache/commons/logging/LogFactory
>     at org.apache.pdfbox.pdfparser.BaseParser.<clinit>(BaseParser.java:58)
>     at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:846)
>     at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:814)
>     at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:785)
>     at PDFTest.main(PDFTest.java:13)
> Caused by: java.lang.ClassNotFoundException:
> org.apache.commons.logging.LogFactory
>     at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>     ... 5 more
> 
> 
> When I add commons-logging-1.1.1.jar in the classpath it works fine. Does
> this mean that commons-logging-1.1.1.jar has to be included in the
> classpath
> in addition to the already listed jars?
Yes, that's correct. You've already found all needed jars. There are some 
others which are optional.
A list of all dependencies can be found at [1]. 

BR
Andreas Lehmkühler

[1] http://pdfbox.apache.org/dependencies.html

Reply via email to