Невозможно запустить Java с внешней библиотекой

1

Я видел этот пост, но я не знал, что такое резолюция.

Я пытаюсь запустить java-программу из командной строки, используя внешнюю библиотеку. Вот общий вывод моей сессии:

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

Может ли кто-нибудь указать мне в правильном направлении?

Любая помощь приветствуется.

Теги:
pdfbox

2 ответа

3
Лучший ответ

В поле pdf используются зависимости, которые также необходимо добавить к вашему пути к классу. Вы можете прочитать о зависимостях здесь

  • 0
    Этот ответ и вышесказанное помогли мне решить мою проблему. Решение: добавьте все зависимости для построения пути (включая apache-commons-logging).
  • 0
    Ссылка выше мертва.
0

В вашем пути к классам отсутствует учетная запись баннеров и зависимости.

Вы можете скачать его здесь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню