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