Java-пакет не существует

Я пытаюсь использовать pdfbox для записи простого PDF файла, но проблема в том, что я получаю сообщение об ошибке:

cannot find symbol class PDDocument

Я загрузил файлы jar в ту же папку, в которой существует программа. Как исправить эту ошибку компиляции?

package org.apache.pdfbox.pdmodel.PDDocument;

import java.io.*;
import org.apache.pdfbox.pdmodel.PDDocument;

public class pdf
{
public static void main(String args[])
{
}
}

Ответ 1

Помещение банки в ту же папку или пакет не добавляет его в путь к классу. Вы должны указать путь к банке в своем пути к классу при запуске вашей Java-программы. Вот для этого синтаксис:

Скомпилировать:

javac -classpath .;yourjar.jar src/your/package/*.java

Для запуска

java -classpath .;yourjar.jar src/your/package/yourprogrammeclassname

Ответ 2

Вам нужно убедиться, что файл JAR находится в пути к классам.

Ответ 3

имеющий аналогичную проблему, я обнаружил, что у меня не было правильного синтаксиса в строке импорта в источнике java

выполняет компиляцию следующим образом (в окнах):

javac -cp .;commons-io-2.4.jar AgeFileFilterTest.java

с commons-io-2.4.jar в той же папке, что и AgeFileFilterTest.java

Я получал ошибку:

import org.apache.*;
^
AgeFileFilterTest.java:24: error: cannot find symbol
            displayFiles(directory, new AgeFileFilter(cutoffDate));
                                        ^

Это было озадачительно, потому что казалось, что все на месте; jar находилась в папке, определенной в пути к классам, и после проверки содержимого контейнера я мог видеть, на что ссылается, - используя 7zip, я открыл файл jar и мог видеть:

commons-io-2.4.jar\org\apache\commons\io\filefilter\AbstractFileFilter.class

Затем я прочитал в некотором сообщении "вы не импортируете класс" , который заставил меня задуматься о синтаксисе импорта...

Я изменил его:

import org.apache.*;

изменив его на:

import org.apache.commons.io.filefilter.*;

и ошибка компиляции wala прошла с использованием: javac -cp.; commons-io-2.4.jar AgeFileFilterTest.java

и программа работала с помощью

java -cp .;commons-io-2.4.jar AgeFileFilterTest