我正在尝试使用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[])
{
}
}
答案 0 :(得分:9)
将jar放在同一文件夹或包中不会将其添加到类路径中。在运行java程序时,需要在类路径中提到jar的路径。以下是其语法:
编译:
javac -classpath .;yourjar.jar src/your/package/*.java
运行
java -classpath .;yourjar.jar src/your/package/yourprogrammeclassname
答案 1 :(得分:2)
您需要确保JAR文件位于类路径上。
答案 2 :(得分:2)
遇到类似问题我发现我在java源代码中的导入行上没有正确的语法
按以下方式进行编译(在Windows上):
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在文件夹中,在类路径中定义,在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